Jeremy White jwhite@codeweavers.com writes:
But I have to admit I'm bothered; you seem to be refusing a patch that makes Wine more correct.
PeekMessage() is more lightweight on Windows than it is on Wine, but I can still write bad code that chokes the system by spin looping on PeekMessage on Windows.
Yes, but the thing is you can write bad code that works fine on Windows but chokes down Wine, because we spend so much more time inside PeekMessage. The yield is an attempt to fix this by penalizing badly written apps to prevent them from hurting well written ones.
Thus, I think it's reasonable to try to preserve relative timing on Wine as closely as we can, even if it creates some overall performance degradation for poorly designed apps. (Famous last words, I'm sure I'll shortly be screaming about why is Wine suddenly so slow <grin>).
The problem is that the poorly designed apps will hammer the server, which will cause a much bigger performance degradation in unrelated apps than what you'd expect simply by hogging the CPU.
Can you point out examples of misbehaving programs so that we can go see just how bad the impact is?
If you run Oliver's test program along with some other Windows apps you can probably see the effects.