https://bugs.winehq.org/show_bug.cgi?id=50448
--- Comment #14 from Zebediah Figura z.figura12@gmail.com --- I can reproduce frequent intermittent hangs locally in the game Rift (or the Glyph launcher; I don't know). I don't see an effect in the game, but I see frequent err:sync messages with various critical sections, including at least one Wine-internal CS (the wined3d CS) implying that some thread is missing a wakeup when the CS is released. I managed, *once*, to reproduce this with +sync, and I got this (trimmed):
188567.658:014c:01a0:trace:sync:RtlWaitOnAddress addr 00007FF30C2074D8 cmp 000000007BC72298 size 0x4 timeout fffffffffd050f80 188567.658:014c:01a0:trace:sync:NtWaitForAlertByThreadId (nil) fffffffffd050f80 188567.658:014c:01bc:trace:sync:RtlWakeAddressSingle 00007FF30C2074D8 188567.658:014c:01bc:trace:sync:NtAlertThreadByThreadId 0x1a0 188567.658:014c:01bc:trace:sync:RtlWakeAddressSingle 00007FF30C2074D8
188567.667:014c:01c0:trace:sync:RtlWaitOnAddress addr 00007FF30C2074D8 cmp 000000007BC72298 size 0x4 timeout fffffffffd050f80
188572.660:014c:01c0:trace:sync:RtlWaitOnAddress addr 00007FF30C2074D8 cmp 000000007BC72298 size 0x4 timeout ffffffffdc3cba00
The first few lines (at .658) are within expectations; nothing to see there. But the last two lines are very weird, because *there is no call to RtlWakeAddressSingle*. I don't understand how this can even happen; it would imply that any thread releasing the lock between those two points saw a LockCount of 0, which shouldn't be possible if 01c0 is waiting on it.