[Bug 31442] Guild Wars 2 freezes on text input fields

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Oct 8 07:17:29 CDT 2012


http://bugs.winehq.org/show_bug.cgi?id=31442

--- Comment #43 from voidcastr <voidcastr at gmail.com> 2012-10-08 07:17:29 CDT ---
I added some trace to message.c:send_message(...)
    TRACE_(mytrace)("dest_tid: %08x\n", info->dest_tid);
    TRACE_(mytrace)("this tid: %08x\n", GetCurrentThreadId());
    TRACE_(mytrace)("message: %u\n", info->msg);
right before the call of
    ret = send_inter_thread_message( info, &result );.


Result:

0044:trace:mytrace:send_message dest_tid: 0000002f
0044:trace:mytrace:send_message this tid: 00000044
0044:trace:mytrace:send_message message: 641

So tid 0044 is trying to send message code 641 to 002f... but in case I
understand everything correctly this should cause a
PeekMessageW or GetMessageW for 002f, as defined in dlls/user32/message.c.
However, no such call occurs... at least custom traces added to the top of both
functions never occur in the log. The same goes for put_message_in_queue(...).


I found out that 002f is in dlls/ntdll/sync.c
    NTDLL_wait_for_multiple_objects(...)
at this time which it processes down to
    ret = wait_reply( &cookie );
in the first loop iteration. I added some traces araound that call because
looking at the log, what happens there seems quite strange to me:

002f:trace:mytrace:NTDLL_wait_for_multiple_objects before wait_reply
[call to wait_reply happens here]
002e:trace:mytrace:NTDLL_wait_for_multiple_objects after wait_reply

Note the shift from 002f to 002e while still processing
NTDLL_wait_for_multiple_objects(...). How can this happen / is that intended?

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list