Fix horridly wrong SignalObjectAndWait return values, should make more
wine tests pass
Modified: trunk/reactos/lib/kernel32/synch/wait.c
_____
Modified: trunk/reactos/lib/kernel32/synch/wait.c
--- trunk/reactos/lib/kernel32/synch/wait.c 2005-08-07 23:08:07 UTC
(rev 17186)
+++ trunk/reactos/lib/kernel32/synch/wait.c 2005-08-07 23:18:40 UTC
(rev 17187)
@@ -266,7 +266,7 @@
{
DPRINT1("Console handles are not supported yet!\n");
SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
+ return WAIT_FAILED;
}
}
@@ -280,6 +280,7 @@
TimePtr = &Time;
}
+WaitAgain:
Status = NtSignalAndWaitForSingleObject (hObjectToSignal,
hObjectToWaitOn,
(BOOLEAN)bAlertable,
@@ -287,10 +288,12 @@
if (!NT_SUCCESS(Status))
{
SetLastErrorByStatus (Status);
- return FALSE;
+ return WAIT_FAILED;
}
+ if (Status == STATUS_ALERTED && bAlertable) goto WaitAgain;
- return TRUE;
+ /* STATUS_SUCCESS maps to WAIT_OBJECT_0 */
+ return Status;
}
/* EOF */