Eryk Sun <eryk...@gmail.com> added the comment:
> Wrap everything needed in a custom C function. Maybe add an `acquire_and_release()` method: static PyObject * lock_PyThread_acquire_and_release_lock( lockobject *self, PyObject *args, PyObject *kwds) { _PyTime_t timeout; if (lock_acquire_parse_args(args, kwds, &timeout) < 0) return NULL; PyLockStatus r = acquire_timed(self->lock_lock, timeout); if (r == PY_LOCK_INTR) { return NULL; } if (r == PY_LOCK_ACQUIRED) { PyThread_release_lock(self->lock_lock); self->locked = 0; } return PyBool_FromLong(r == PY_LOCK_ACQUIRED); } ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue46726> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com