https://bugs.winehq.org/show_bug.cgi?id=46252
--- Comment #2 from rawfox rawfox@freenet.de --- (In reply to Austin English from comment #1)
Is this a regression caused by 6060d2703c2e1382f076ad40ea43980781eaca2c? If I'm reading the bug correctly, it didn't work before, so I don't see how it would be a regression.
No, the WaitOnAddress() seems to work now. Nontheless it is very very slow with the game and it needs this futex implementation of WaitOnAddress() to work properly.
This is valid for wine-4.0rc1 as well. The game works but has low performance. Patching /dlls/ntdll/sync.c with the two patches above gives the needed game performance.
I dont know why, thats up to you coders to figure that out.
What ive read on this topic is, Windows uses WaitOnAddress() while Linux uses kernel futexes. So to my understanding, a fast thread organisation is done in the linux Kernel while it seems to be in the ntdll on Windows.
A possible solution would be, to add these 2 patches into staging. For now, they conflict there in the staging patches with another futex condition implementation.