gh-115942: Add locked to several multiprocessing locks (#115944)

Co-authored-by: mpage <mpage@cs.stanford.edu>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
This commit is contained in:
sobolevn 2025-04-08 11:14:12 +03:00 committed by GitHub
parent 6cd1d6c6b1
commit f7305a06c7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 89 additions and 6 deletions

View file

@ -1086,6 +1086,19 @@ PyDoc_STRVAR(rlock_exit_doc,
\n\
Release the lock.");
static PyObject *
rlock_locked(PyObject *op, PyObject *Py_UNUSED(ignored))
{
rlockobject *self = rlockobject_CAST(op);
int is_locked = _PyRecursiveMutex_IsLockedByCurrentThread(&self->lock);
return PyBool_FromLong(is_locked);
}
PyDoc_STRVAR(rlock_locked_doc,
"locked()\n\
\n\
Return a boolean indicating whether this object is locked right now.");
static PyObject *
rlock_acquire_restore(PyObject *op, PyObject *args)
{
@ -1204,6 +1217,8 @@ static PyMethodDef rlock_methods[] = {
METH_VARARGS | METH_KEYWORDS, rlock_acquire_doc},
{"release", rlock_release,
METH_NOARGS, rlock_release_doc},
{"locked", rlock_locked,
METH_NOARGS, rlock_locked_doc},
{"_is_owned", rlock_is_owned,
METH_NOARGS, rlock_is_owned_doc},
{"_acquire_restore", rlock_acquire_restore,