Windows NT synchronization primitives for Linux
Windows NT synchronization primitives for Linux
Posted Feb 22, 2024 15:21 UTC (Thu) by farnz (subscriber, #17727)In reply to: Windows NT synchronization primitives for Linux by Wol
Parent article: Windows NT synchronization primitives for Linux
You also need some mechanism to tell all the existing calls in the kernel that wineserver is taking over wait calls now, so they need to return to userspace and be retried (inside Wine) by the IPC mechanism instead of the kernel mechanism, otherwise you can't correctly implement the corner-cases of Win32 when you have both wait-for-any and wait-for-all referencing the same objects.
Posted Feb 22, 2024 17:04 UTC (Thu)
by Wol (subscriber, #4433)
[Link] (1 responses)
Cheers,
Posted Feb 22, 2024 21:36 UTC (Thu)
by farnz (subscriber, #17727)
[Link]
Wine needs to take over before the ref count drops to zero, else you've regressed. To match Windows kernel behaviour, you either need the Linux kernel to support wait-for-all somehow, or you need the Linux kernel to hand over the existing wait-for-any waits to Wine, so that Wine can correctly emulate the corner cases of wait-for-all.
Windows NT synchronization primitives for Linux
Wol
Windows NT synchronization primitives for Linux