diff options
author | Victor Stinner <vstinner@python.org> | 2021-09-30 02:11:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-30 02:11:41 +0200 |
commit | 09796f2f142fdb1214f34a3ca917959ecb32a88b (patch) | |
tree | 28ec5f6d88dbaaff416418964ce430221b7cacd0 /Python/thread_pthread.h | |
parent | 8d3e7eff0936926554db6162c992af5829dc8160 (diff) | |
download | cpython-09796f2f142fdb1214f34a3ca917959ecb32a88b.tar.gz cpython-09796f2f142fdb1214f34a3ca917959ecb32a88b.zip |
bpo-41710: Add _PyTime_AsTimespec_clamp() (GH-28629)
Add the _PyTime_AsTimespec_clamp() function: similar to
_PyTime_AsTimespec(), but clamp to _PyTime_t min/max and don't raise
an exception.
PyThread_acquire_lock_timed() now uses _PyTime_AsTimespec_clamp() to
remove the Py_UNREACHABLE() code path.
* Add _PyTime_AsTime_t() function.
* Add PY_TIME_T_MIN and PY_TIME_T_MAX constants.
* Replace _PyTime_AsTimeval_noraise() with _PyTime_AsTimeval_clamp().
* Add pytime_divide_round_up() function.
* Fix integer overflow in pytime_divide().
* Add pytime_divmod() function.
Diffstat (limited to 'Python/thread_pthread.h')
-rw-r--r-- | Python/thread_pthread.h | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h index a45d842ffe7..7f04151ca91 100644 --- a/Python/thread_pthread.h +++ b/Python/thread_pthread.h @@ -481,11 +481,7 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds, } else if (dt > 0) { _PyTime_t realtime_deadline = _PyTime_GetSystemClock() + dt; - if (_PyTime_AsTimespec(realtime_deadline, &ts) < 0) { - /* Cannot occur thanks to (microseconds > PY_TIMEOUT_MAX) - check done above */ - Py_UNREACHABLE(); - } + _PyTime_AsTimespec_clamp(realtime_deadline, &ts); /* no need to update microseconds value, the code only care if (microseconds > 0 or (microseconds == 0). */ } |