Aida JonikienÄ— (@DodoGTA) commented about dlls/ntdll/unix/sync.c:
{ union select_op select_op; UINT i, flags = SELECT_INTERRUPTIBLE; + unsigned int ret;
if (!count || count > MAXIMUM_WAIT_OBJECTS) return STATUS_INVALID_PARAMETER_1;
+ if (TRACE_ON(sync)) + { + TRACE( "wait_any %u, alertable %u, handles {%p", wait_any, alertable, handles[0] ); + for (i = 1; i < count; i++) TRACE( ", %p", handles[i] ); + TRACE( "}, timeout %s\n", debugstr_timeout(timeout) ); + } + + if ((ret = inproc_wait( count, handles, wait_any, alertable, timeout )) != STATUS_NOT_IMPLEMENTED) This is going to fail with no server fallback with completion waits (because `completion_wait_ops` has `no_get_inproc_sync`)
That failure can have realistic consequences (like GTA 3 crashing because of an `quartz` assert caused by this function failing) So can there be an extra `STATUS_OBJECT_TYPE_MISMATCH` check here (or actually implementing completion wait support if that's even possible)? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7226#note_93255