summaryrefslogtreecommitdiffstats
path: root/Modules/_threadmodule.c
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2023-10-17 23:05:49 (GMT)
committerGitHub <noreply@github.com>2023-10-17 23:05:49 (GMT)
commitc58c63fdf615a1c2bfc995dd0b938d82e32b6cde (patch)
treec55bd273d26fdcaf30013a44a7bf973940771a23 /Modules/_threadmodule.c
parent7029c1a1c5b864056aa00298b1d0e0269f073f99 (diff)
downloadcpython-c58c63fdf615a1c2bfc995dd0b938d82e32b6cde.zip
cpython-c58c63fdf615a1c2bfc995dd0b938d82e32b6cde.tar.gz
cpython-c58c63fdf615a1c2bfc995dd0b938d82e32b6cde.tar.bz2
gh-84570: Add Timeouts to SendChannel.send() and RecvChannel.recv() (gh-110567)
Diffstat (limited to 'Modules/_threadmodule.c')
-rw-r--r--Modules/_threadmodule.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c
index 7620511..4d45304 100644
--- a/Modules/_threadmodule.c
+++ b/Modules/_threadmodule.c
@@ -88,14 +88,15 @@ lock_acquire_parse_args(PyObject *args, PyObject *kwds,
char *kwlist[] = {"blocking", "timeout", NULL};
int blocking = 1;
PyObject *timeout_obj = NULL;
- const _PyTime_t unset_timeout = _PyTime_FromSeconds(-1);
-
- *timeout = unset_timeout ;
-
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|pO:acquire", kwlist,
&blocking, &timeout_obj))
return -1;
+ // XXX Use PyThread_ParseTimeoutArg().
+
+ const _PyTime_t unset_timeout = _PyTime_FromSeconds(-1);
+ *timeout = unset_timeout;
+
if (timeout_obj
&& _PyTime_FromSecondsObject(timeout,
timeout_obj, _PyTime_ROUND_TIMEOUT) < 0)
@@ -108,7 +109,7 @@ lock_acquire_parse_args(PyObject *args, PyObject *kwds,
}
if (*timeout < 0 && *timeout != unset_timeout) {
PyErr_SetString(PyExc_ValueError,
- "timeout value must be positive");
+ "timeout value must be a non-negative number");
return -1;
}
if (!blocking)