14 Dec
2024
14 Dec
'24
12:51 p.m.
The problem is that there might be no threads that initiate any wait.
You're probably thinking about synchronous wait. By "initiate the wait" I mean the thread that called NtAssociateWaitCompletionPacket(). Not all waits are synchronous (like WaitForSingleObject). NtAssociateWaitCompletionPacket() initiates an *asynchronous* wait. When the wait is done (the object is signaled), it queues a completion to the associated I/O completion port. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6911#note_90531