Fixed [Ke/Nt]WaitForMultipleObjects() bug

svn path=/trunk/; revision=1239
This commit is contained in:
Phillip Susi 2000-07-07 00:46:35 +00:00
parent db1ccdf290
commit 3ca24a2c2a

View file

@ -496,7 +496,12 @@ KeWaitForMultipleObjects (
} }
blk = WaitBlockArray; blk = WaitBlockArray;
} }
if (Timeout != NULL)
{
KeAddThreadTimeout(CurrentThread,Timeout);
}
do {
KeAcquireDispatcherDatabaseLock(FALSE); KeAcquireDispatcherDatabaseLock(FALSE);
for (i = 0; i < Count; i++) for (i = 0; i < Count; i++)
@ -525,11 +530,6 @@ KeWaitForMultipleObjects (
return(STATUS_WAIT_0); return(STATUS_WAIT_0);
} }
if (Timeout != NULL)
{
KeAddThreadTimeout(CurrentThread,Timeout);
}
/* Append wait block to the KTHREAD wait block list */ /* Append wait block to the KTHREAD wait block list */
CurrentThread->WaitBlockList = blk; CurrentThread->WaitBlockList = blk;
@ -564,7 +564,7 @@ KeWaitForMultipleObjects (
&Status, &Status,
Alertable, Alertable,
WaitMode); WaitMode);
} while( Status == STATUS_KERNEL_APC );
if (Timeout != NULL) if (Timeout != NULL)
KeCancelTimer(&KeGetCurrentThread()->Timer); KeCancelTimer(&KeGetCurrentThread()->Timer);
DPRINT("Returning from KeWaitForMultipleObjects()\n"); DPRINT("Returning from KeWaitForMultipleObjects()\n");