summaryrefslogtreecommitdiffstats
path: root/Modules/selectmodule.c
diff options
context:
space:
mode:
authorPablo Galindo <Pablogsal@gmail.com>2017-10-17 14:14:41 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2017-10-17 14:14:41 (GMT)
commit2c15b29aea5d6b9c61aa42d2c24a07ff1edb4b46 (patch)
treeb6b9f24a447144147ddd1959f90016106c077c05 /Modules/selectmodule.c
parent552be9d7e64f91b8e4ba5b29cd5dcc442d56f92c (diff)
downloadcpython-2c15b29aea5d6b9c61aa42d2c24a07ff1edb4b46.zip
cpython-2c15b29aea5d6b9c61aa42d2c24a07ff1edb4b46.tar.gz
cpython-2c15b29aea5d6b9c61aa42d2c24a07ff1edb4b46.tar.bz2
bpo-31786: Make functions in the select module blocking when timeout is a small negative value. (#4003)
Diffstat (limited to 'Modules/selectmodule.c')
-rw-r--r--Modules/selectmodule.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 66d1a37..5305523 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -213,7 +213,7 @@ select_select(PyObject *self, PyObject *args)
tvp = (struct timeval *)NULL;
else {
if (_PyTime_FromSecondsObject(&timeout, timeout_obj,
- _PyTime_ROUND_CEILING) < 0) {
+ _PyTime_ROUND_TIMEOUT) < 0) {
if (PyErr_ExceptionMatches(PyExc_TypeError)) {
PyErr_SetString(PyExc_TypeError,
"timeout must be a float or None");
@@ -221,7 +221,7 @@ select_select(PyObject *self, PyObject *args)
return NULL;
}
- if (_PyTime_AsTimeval(timeout, &tv, _PyTime_ROUND_CEILING) == -1)
+ if (_PyTime_AsTimeval(timeout, &tv, _PyTime_ROUND_TIMEOUT) == -1)
return NULL;
if (tv.tv_sec < 0) {
PyErr_SetString(PyExc_ValueError, "timeout must be non-negative");
@@ -540,7 +540,7 @@ poll_poll(pollObject *self, PyObject *args)
}
else {
if (_PyTime_FromMillisecondsObject(&timeout, timeout_obj,
- _PyTime_ROUND_CEILING) < 0) {
+ _PyTime_ROUND_TIMEOUT) < 0) {
if (PyErr_ExceptionMatches(PyExc_TypeError)) {
PyErr_SetString(PyExc_TypeError,
"timeout must be an integer or None");
@@ -548,7 +548,7 @@ poll_poll(pollObject *self, PyObject *args)
return NULL;
}
- ms = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_CEILING);
+ ms = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_TIMEOUT);
if (ms < INT_MIN || ms > INT_MAX) {
PyErr_SetString(PyExc_OverflowError, "timeout is too large");
return NULL;
@@ -896,7 +896,7 @@ devpoll_poll(devpollObject *self, PyObject *args)
}
else {
if (_PyTime_FromMillisecondsObject(&timeout, timeout_obj,
- _PyTime_ROUND_CEILING) < 0) {
+ _PyTime_ROUND_TIMEOUT) < 0) {
if (PyErr_ExceptionMatches(PyExc_TypeError)) {
PyErr_SetString(PyExc_TypeError,
"timeout must be an integer or None");
@@ -904,7 +904,7 @@ devpoll_poll(devpollObject *self, PyObject *args)
return NULL;
}
- ms = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_CEILING);
+ ms = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_TIMEOUT);
if (ms < -1 || ms > INT_MAX) {
PyErr_SetString(PyExc_OverflowError, "timeout is too large");
return NULL;
@@ -1513,7 +1513,7 @@ pyepoll_poll(pyEpoll_Object *self, PyObject *args, PyObject *kwds)
/* epoll_wait() has a resolution of 1 millisecond, round towards
infinity to wait at least timeout seconds. */
if (_PyTime_FromSecondsObject(&timeout, timeout_obj,
- _PyTime_ROUND_CEILING) < 0) {
+ _PyTime_ROUND_TIMEOUT) < 0) {
if (PyErr_ExceptionMatches(PyExc_TypeError)) {
PyErr_SetString(PyExc_TypeError,
"timeout must be an integer or None");
@@ -2128,7 +2128,7 @@ kqueue_queue_control(kqueue_queue_Object *self, PyObject *args)
}
else {
if (_PyTime_FromSecondsObject(&timeout,
- otimeout, _PyTime_ROUND_CEILING) < 0) {
+ otimeout, _PyTime_ROUND_TIMEOUT) < 0) {
PyErr_Format(PyExc_TypeError,
"timeout argument must be a number "
"or None, got %.200s",