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:
http://www.winehq.org/hypermail/wine-devel/2005/01/0469.html)
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.
Cheers,
Jeremy
More information about the wine-devel
mailing list