summaryrefslogtreecommitdiffstats
path: root/Modules/_multiprocessing
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2022-12-03 19:52:21 (GMT)
committerGitHub <noreply@github.com>2022-12-03 19:52:21 (GMT)
commita87c46eab3c306b1c5b8a072b7b30ac2c50651c0 (patch)
tree92c0ebdb6abd303ea967c0bd999d839a98f84494 /Modules/_multiprocessing
parentc68573b339320409b038501fdd7d4f8a56766275 (diff)
downloadcpython-a87c46eab3c306b1c5b8a072b7b30ac2c50651c0.zip
cpython-a87c46eab3c306b1c5b8a072b7b30ac2c50651c0.tar.gz
cpython-a87c46eab3c306b1c5b8a072b7b30ac2c50651c0.tar.bz2
bpo-15999: Accept arbitrary values for boolean parameters. (#15609)
builtins and extension module functions and methods that expect boolean values for parameters now accept any Python object rather than just a bool or int type. This is more consistent with how native Python code itself behaves.
Diffstat (limited to 'Modules/_multiprocessing')
-rw-r--r--Modules/_multiprocessing/clinic/semaphore.c.h14
-rw-r--r--Modules/_multiprocessing/semaphore.c12
2 files changed, 13 insertions, 13 deletions
diff --git a/Modules/_multiprocessing/clinic/semaphore.c.h b/Modules/_multiprocessing/clinic/semaphore.c.h
index dce0366..3534716 100644
--- a/Modules/_multiprocessing/clinic/semaphore.c.h
+++ b/Modules/_multiprocessing/clinic/semaphore.c.h
@@ -65,8 +65,8 @@ _multiprocessing_SemLock_acquire(SemLockObject *self, PyObject *const *args, Py_
goto skip_optional_pos;
}
if (args[0]) {
- blocking = _PyLong_AsInt(args[0]);
- if (blocking == -1 && PyErr_Occurred()) {
+ blocking = PyObject_IsTrue(args[0]);
+ if (blocking < 0) {
goto exit;
}
if (!--noptargs) {
@@ -162,8 +162,8 @@ _multiprocessing_SemLock_acquire(SemLockObject *self, PyObject *const *args, Py_
goto skip_optional_pos;
}
if (args[0]) {
- blocking = _PyLong_AsInt(args[0]);
- if (blocking == -1 && PyErr_Occurred()) {
+ blocking = PyObject_IsTrue(args[0]);
+ if (blocking < 0) {
goto exit;
}
if (!--noptargs) {
@@ -275,8 +275,8 @@ _multiprocessing_SemLock(PyTypeObject *type, PyObject *args, PyObject *kwargs)
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- unlink = _PyLong_AsInt(fastargs[4]);
- if (unlink == -1 && PyErr_Occurred()) {
+ unlink = PyObject_IsTrue(fastargs[4]);
+ if (unlink < 0) {
goto exit;
}
return_value = _multiprocessing_SemLock_impl(type, kind, value, maxvalue, name, unlink);
@@ -542,4 +542,4 @@ exit:
#ifndef _MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF
#define _MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF
#endif /* !defined(_MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF) */
-/*[clinic end generated code: output=720d7d0066dc0954 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=dae57a702cc01512 input=a9049054013a1b77]*/
diff --git a/Modules/_multiprocessing/semaphore.c b/Modules/_multiprocessing/semaphore.c
index 58fb0eb..897b8db 100644
--- a/Modules/_multiprocessing/semaphore.c
+++ b/Modules/_multiprocessing/semaphore.c
@@ -79,7 +79,7 @@ _GetSemaphoreValue(HANDLE handle, long *value)
/*[clinic input]
_multiprocessing.SemLock.acquire
- block as blocking: bool(accept={int}) = True
+ block as blocking: bool = True
timeout as timeout_obj: object = None
Acquire the semaphore/lock.
@@ -88,7 +88,7 @@ Acquire the semaphore/lock.
static PyObject *
_multiprocessing_SemLock_acquire_impl(SemLockObject *self, int blocking,
PyObject *timeout_obj)
-/*[clinic end generated code: output=f9998f0b6b0b0872 input=86f05662cf753eb4]*/
+/*[clinic end generated code: output=f9998f0b6b0b0872 input=e5b45f5cbb775166]*/
{
double timeout;
DWORD res, full_msecs, nhandles;
@@ -295,7 +295,7 @@ sem_timedwait_save(sem_t *sem, struct timespec *deadline, PyThreadState *_save)
/*[clinic input]
_multiprocessing.SemLock.acquire
- block as blocking: bool(accept={int}) = True
+ block as blocking: bool = True
timeout as timeout_obj: object = None
Acquire the semaphore/lock.
@@ -304,7 +304,7 @@ Acquire the semaphore/lock.
static PyObject *
_multiprocessing_SemLock_acquire_impl(SemLockObject *self, int blocking,
PyObject *timeout_obj)
-/*[clinic end generated code: output=f9998f0b6b0b0872 input=86f05662cf753eb4]*/
+/*[clinic end generated code: output=f9998f0b6b0b0872 input=e5b45f5cbb775166]*/
{
int res, err = 0;
struct timespec deadline = {0};
@@ -474,14 +474,14 @@ _multiprocessing.SemLock.__new__
value: int
maxvalue: int
name: str
- unlink: bool(accept={int})
+ unlink: bool
[clinic start generated code]*/
static PyObject *
_multiprocessing_SemLock_impl(PyTypeObject *type, int kind, int value,
int maxvalue, const char *name, int unlink)
-/*[clinic end generated code: output=30727e38f5f7577a input=b378c3ee27d3a0fa]*/
+/*[clinic end generated code: output=30727e38f5f7577a input=fdaeb69814471c5b]*/
{
SEM_HANDLE handle = SEM_FAILED;
PyObject *result;