mirror of https://github.com/python/cpython
gh-112804: Clamping timeout value for _PySemaphore_PlatformWait (gh-124914)
* gh-112804: Clamping timeout value for _PySemaphore_PlatformWait * Address code review * nit
This commit is contained in:
parent
adfe7657a3
commit
a5fc50994a
|
@ -102,7 +102,14 @@ _PySemaphore_PlatformWait(_PySemaphore *sema, PyTime_t timeout)
|
|||
millis = INFINITE;
|
||||
}
|
||||
else {
|
||||
millis = (DWORD) (timeout / 1000000);
|
||||
PyTime_t div = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_TIMEOUT);
|
||||
// Prevent overflow with clamping the result
|
||||
if ((PyTime_t)PY_DWORD_MAX < div) {
|
||||
millis = PY_DWORD_MAX;
|
||||
}
|
||||
else {
|
||||
millis = (DWORD) div;
|
||||
}
|
||||
}
|
||||
wait = WaitForSingleObjectEx(sema->platform_sem, millis, FALSE);
|
||||
if (wait == WAIT_OBJECT_0) {
|
||||
|
|
Loading…
Reference in New Issue