test case demonstrating PeekMessage give up timeslices

Jeremy White jwhite at codeweavers.com
Tue Aug 2 17:08:39 CDT 2005

I dug into this a bit further.

Felix, the extra 100 yields are coming from code I
prompted, in ntdll/sync.c; if the return from
an NtWait... is TIMEOUT, then we force a yield.
(The thread that points to more info is here:

If I back that down and apply your patch, I can
get to 100/1/1.  This also makes Olivers test program
retain priority (rather than slowing to a crawl as it
does today).  In fact, it keeps too high a priority
(the perl test is slow and jerky by comparison to the Wine
one, instead of being relatively even as on Windows).
I'd theorize that's due to the server calls; we smell
like an X process so we get priority.

However, this makes it clear to me that the yield
in message.c is largely moot; you need to remove both
that one and the one in ntdll/sync.c to have
any material effect on Wine timing with messages.

Further, while I've been wanting to probe that yield
in ntdll.c further, I haven't done my homework yet,
so I think maybe I'll shut up and slink back into
my corner.



More information about the wine-devel mailing list