https://bugs.winehq.org/show_bug.cgi?id=50448
--- Comment #7 from Bjoern Bidar bjorn.bidar@thaodan.de --- (In reply to Zebediah Figura from comment #6)
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.
It is better now but not fixed. Before I had a lag when the first 3D scene was rendered (login-screen) that is now gone. But after some time I still get the freeze.
02cc:err:sync:RtlpWaitForCriticalSection section 000000002501BAE0 "?" wait timed out in thread 02cc, blocked by 0000, retrying (60 sec)
When I logged with the suggested options I did not got a freeze.
Here is the log: https://thaodan.de/public/archlinux/wow_wine_6.0_rc5.log.xz (WINEDEBUG=+seh,+pid,+sync,+timestamp,)