On 11/12/19 2:59 PM, Alexandre Julliard wrote:
Rémi Bernon rbernon@codeweavers.com writes:
Regarding the hooks, I assumed that if we are processing input events, it means that the current thread is already in a message processing loop, so the hooks would eventually be processed if they belong to the same thread. Although maybe that would depend on the message filters?
If they belong to another thread, it means that if for any reason that thread is not processing its messages, input events coming from the user would block the message loop instead of just being queued to the hooking thread. Maybe it's also something we expect?
Yes, the low-level hooks work basically like SendMessage, and block the sender. There's a timeout in case the hooking thread is stuck.
Alright, I thought that the round trip from the message queue to the hooks was a wine implementation detail, but a quick test proves me wrong. The timeout on Windows seems much smaller though -but there's definitely one.
Thanks,