mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 12:26:09 +00:00
use loops instead of gotos
svn path=/trunk/; revision=17192
This commit is contained in:
parent
afcb29cc7c
commit
e41e25c1e1
1 changed files with 37 additions and 30 deletions
|
@ -90,17 +90,20 @@ WaitForSingleObjectEx(HANDLE hHandle,
|
||||||
Time.QuadPart = -10000 * (LONGLONG)dwMilliseconds;
|
Time.QuadPart = -10000 * (LONGLONG)dwMilliseconds;
|
||||||
TimePtr = &Time;
|
TimePtr = &Time;
|
||||||
}
|
}
|
||||||
WaitAgain:
|
|
||||||
Status = NtWaitForSingleObject(hHandle,
|
|
||||||
(BOOLEAN) bAlertable,
|
|
||||||
TimePtr);
|
|
||||||
|
|
||||||
if (HIWORD(Status))
|
do
|
||||||
{
|
{
|
||||||
SetLastErrorByStatus (Status);
|
Status = NtWaitForSingleObject(hHandle,
|
||||||
return WAIT_FAILED;
|
(BOOLEAN) bAlertable,
|
||||||
}
|
TimePtr);
|
||||||
if (Status == STATUS_ALERTED && bAlertable) goto WaitAgain;
|
|
||||||
|
if (HIWORD(Status))
|
||||||
|
{
|
||||||
|
SetLastErrorByStatus (Status);
|
||||||
|
return WAIT_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (Status == STATUS_ALERTED && bAlertable);
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
@ -211,18 +214,20 @@ WaitForMultipleObjectsEx(DWORD nCount,
|
||||||
TimePtr = &Time;
|
TimePtr = &Time;
|
||||||
}
|
}
|
||||||
|
|
||||||
WaitAgain:
|
do
|
||||||
Status = NtWaitForMultipleObjects (nCount,
|
|
||||||
HandleBuffer,
|
|
||||||
bWaitAll ? WaitAll : WaitAny,
|
|
||||||
(BOOLEAN)bAlertable,
|
|
||||||
TimePtr);
|
|
||||||
if (HIWORD(Status))
|
|
||||||
{
|
{
|
||||||
SetLastErrorByStatus (Status);
|
Status = NtWaitForMultipleObjects (nCount,
|
||||||
Status = WAIT_FAILED;
|
HandleBuffer,
|
||||||
}
|
bWaitAll ? WaitAll : WaitAny,
|
||||||
if (Status == STATUS_ALERTED && bAlertable) goto WaitAgain;
|
(BOOLEAN)bAlertable,
|
||||||
|
TimePtr);
|
||||||
|
if (HIWORD(Status))
|
||||||
|
{
|
||||||
|
SetLastErrorByStatus (Status);
|
||||||
|
Status = WAIT_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (Status == STATUS_ALERTED && bAlertable);
|
||||||
|
|
||||||
if (HandleBuffer != Handle)
|
if (HandleBuffer != Handle)
|
||||||
{
|
{
|
||||||
|
@ -283,17 +288,19 @@ SignalObjectAndWait(HANDLE hObjectToSignal,
|
||||||
TimePtr = &Time;
|
TimePtr = &Time;
|
||||||
}
|
}
|
||||||
|
|
||||||
WaitAgain:
|
do
|
||||||
Status = NtSignalAndWaitForSingleObject (hObjectToSignal,
|
|
||||||
hObjectToWaitOn,
|
|
||||||
(BOOLEAN)bAlertable,
|
|
||||||
TimePtr);
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
{
|
||||||
SetLastErrorByStatus (Status);
|
Status = NtSignalAndWaitForSingleObject (hObjectToSignal,
|
||||||
return WAIT_FAILED;
|
hObjectToWaitOn,
|
||||||
}
|
(BOOLEAN)bAlertable,
|
||||||
if (Status == STATUS_ALERTED && bAlertable) goto WaitAgain;
|
TimePtr);
|
||||||
|
if (!NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
SetLastErrorByStatus (Status);
|
||||||
|
return WAIT_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (Status == STATUS_ALERTED && bAlertable);
|
||||||
|
|
||||||
/* STATUS_SUCCESS maps to WAIT_OBJECT_0 */
|
/* STATUS_SUCCESS maps to WAIT_OBJECT_0 */
|
||||||
return Status;
|
return Status;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue