https://bugs.winehq.org/show_bug.cgi?id=50448
--- Comment #6 from Zebediah Figura z.figura12@gmail.com --- Actually, I just realized an even easier race. It's not quite documented, but two simultaneous calls to RtlWakeAddressSingle() apparently should always wake at least two threads, and my patches violated that. I've pushed a fix as https://github.com/wine-staging/wine-staging/commit/dfddef9654d4a24642c61c287a93f22eb7a51e12.
I think that this indirectly ends up fixing the race described in comment 5 as well. At least one other thread will end up waking 010c before 0108 does (while 010c is the only thread actually waiting on the lock) and so 0108 wakes 00fc instead.
Please test with current wine-staging (and without the patch from comment 5); I think that should end up fixing this bug completely.