aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python/thread_pthread.h
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2021-09-30 02:11:41 +0200
committerGitHub <noreply@github.com>2021-09-30 02:11:41 +0200
commit09796f2f142fdb1214f34a3ca917959ecb32a88b (patch)
tree28ec5f6d88dbaaff416418964ce430221b7cacd0 /Python/thread_pthread.h
parent8d3e7eff0936926554db6162c992af5829dc8160 (diff)
downloadcpython-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.h6
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). */
}