This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author eryksun
Recipients Kevin Shweh, SnoopJeDi, bjs, eryksun, pitrou, serhiy.storchaka, tim.peters, vstinner
Date 2022-02-13.03:10:06
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1644721806.61.0.563935595936.issue46726@roundup.psfhosted.org>
In-reply-to
Content
> 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);
    }
History
Date User Action Args
2022-02-13 03:10:06eryksunsetrecipients: + eryksun, tim.peters, pitrou, vstinner, serhiy.storchaka, Kevin Shweh, bjs, SnoopJeDi
2022-02-13 03:10:06eryksunsetmessageid: <1644721806.61.0.563935595936.issue46726@roundup.psfhosted.org>
2022-02-13 03:10:06eryksunlinkissue46726 messages
2022-02-13 03:10:06eryksuncreate