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)?