mirror of https://github.com/python/cpython
[3.13] gh-112804: Clamping timeout value for _PySemaphore_PlatformWait (gh-124914) (gh-124991)
gh-112804: Clamping timeout value for _PySemaphore_PlatformWait (gh-124914)
* gh-112804: Clamping timeout value for _PySemaphore_PlatformWait
* Address code review
* nit
(cherry picked from commit a5fc50994a
)
Co-authored-by: Donghee Na <donghee.na@python.org>
This commit is contained in:
parent
8bc8d21ac7
commit
80ba17a3dd
|
@ -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