test case demonstrating PeekMessage give up timeslices

Alexandre Julliard julliard at winehq.org
Tue Aug 2 13:13:07 CDT 2005

Jeremy White <jwhite at 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.

Alexandre Julliard
julliard at winehq.org

More information about the wine-devel mailing list