Paul Gofman (@gofman) commented about dlls/ntdll/unix/sync.c:
TRACE( "}, timeout %s\n", debugstr_timeout(timeout) ); }
- if ((ret = inproc_wait( count, handles, type, alertable, timeout )) != STATUS_NOT_IMPLEMENTED) + /* Reject pseudo-handles up front. These are not valid for multi-object waits. */ + for (i = 0; i < count; i++) { - TRACE( "-> %#x\n", ret ); - return ret; + if ((ULONG)(ULONG_PTR)handles[i] > 0xfffffffa)
This would need tests for other special handles besides the current process. Also, do we have any tests showing that the behaviour is different for the single and multiple objects wait, wait for all and for any? Maybe I missed something but I only spotted the patches fixing todos in the test for multiple objects. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9305#note_120016