]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-41710: Add _PyTime_AsTimespec_clamp() (GH-28629)
authorVictor Stinner <vstinner@python.org>
Thu, 30 Sep 2021 00:11:41 +0000 (02:11 +0200)
committerGitHub <noreply@github.com>
Thu, 30 Sep 2021 00:11:41 +0000 (02:11 +0200)
commit09796f2f142fdb1214f34a3ca917959ecb32a88b
tree28ec5f6d88dbaaff416418964ce430221b7cacd0
parent8d3e7eff0936926554db6162c992af5829dc8160
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.
Include/cpython/pytime.h
Lib/test/test_time.py
Modules/_ssl.c
Modules/_testcapimodule.c
Modules/selectmodule.c
Modules/socketmodule.c
Python/pytime.c
Python/thread_pthread.h