http://bugs.winehq.org/show_bug.cgi?id=4487
Toni Spets toni.spets@iki.fi changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |toni.spets@iki.fi
--- Comment #28 from Toni Spets toni.spets@iki.fi 2010-11-05 10:53:43 CDT --- During my work on cnc-ddraw (https://github.com/hifi/cnc-ddraw) I discovered that this issue was completely avoided my my minimal ddraw implementation.
It seems that this is somehow related to ddraw async API and thread synchronization. Sometimes when I changed the synchronizing style I got a lockup almost instantly (like in Wine ddraw).
Currently I think my code avoids this problem. Both games can run without using schedtool.
Its worth noting this is also an issue on real Windows with multiple cores. The game occasionally freezes without setting one core affinity and/or setting win95/win98 compatibility mode (which probably also sets one core affinity).
So, this is most probably related to Wine's current ddraw implementation and its async API not being thread safe.
cnc-ddraw is still a work-in-progress.