6 Feb
2024
6 Feb
'24
9:05 p.m.
That seems to fix some (difficult to reproduce) crashes in EA Desktop / CEF, usually on shutdown but sometimes during starting up. Currently TpSetWait can set (or clear) the event, while waitqueue_thread_proc() gets woken from NtWaitForMultipleObjects by previously set wait object and call the callback as if new set (or cleared) wait object is signaled. The crashes I was reproducing were always happening when RtlDeregisterWaitEx call is racing with waking the wait and calling the callback. -- v2: ntdll: Make sure wakeups from already unset events are ignored in waitqueue_thread_proc(). https://gitlab.winehq.org/wine/wine/-/merge_requests/5044