diff options
author | Pablo Galindo <Pablogsal@gmail.com> | 2017-10-18 07:13:09 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2017-10-18 07:13:09 (GMT) |
commit | 59af94fa61bf90adbe624508e909b5d6ef6e8464 (patch) | |
tree | 74ee9a80276bed8eb99229acf2fb071a1d341400 /Modules/socketmodule.c | |
parent | ec12df1e6e4d03a0d22956355308df695a8dff36 (diff) | |
download | cpython-59af94fa61bf90adbe624508e909b5d6ef6e8464.zip cpython-59af94fa61bf90adbe624508e909b5d6ef6e8464.tar.gz cpython-59af94fa61bf90adbe624508e909b5d6ef6e8464.tar.bz2 |
bpo-31806: Use _PyTime_ROUND_TIMEOUT for the timeout argument parsing in more functions (#4026)
Fix timeout rounding in time.sleep(), threading.Lock.acquire() and
socket.socket.settimeout() to round correctly negative timeouts between -1.0 and
0.0. The functions now block waiting for events as expected. Previously, the
call was incorrectly non-blocking.
Diffstat (limited to 'Modules/socketmodule.c')
-rw-r--r-- | Modules/socketmodule.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 5df9d01..0758f9b 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -2539,7 +2539,7 @@ socket_parse_timeout(_PyTime_t *timeout, PyObject *timeout_obj) } if (_PyTime_FromSecondsObject(timeout, - timeout_obj, _PyTime_ROUND_CEILING) < 0) + timeout_obj, _PyTime_ROUND_TIMEOUT) < 0) return -1; if (*timeout < 0) { @@ -2548,10 +2548,10 @@ socket_parse_timeout(_PyTime_t *timeout, PyObject *timeout_obj) } #ifdef MS_WINDOWS - overflow |= (_PyTime_AsTimeval(*timeout, &tv, _PyTime_ROUND_CEILING) < 0); + overflow |= (_PyTime_AsTimeval(*timeout, &tv, _PyTime_ROUND_TIMEOUT) < 0); #endif #ifndef HAVE_POLL - ms = _PyTime_AsMilliseconds(*timeout, _PyTime_ROUND_CEILING); + ms = _PyTime_AsMilliseconds(*timeout, _PyTime_ROUND_TIMEOUT); overflow |= (ms > INT_MAX); #endif if (overflow) { |