diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-04-24 21:41:33 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-04-24 21:41:33 (GMT) |
commit | c2824d41c32c3be5f100acdb1ff9f71ba7336b60 (patch) | |
tree | ecc2204a2c49dbbb3eba73212218fbf244b725a9 /Modules/_threadmodule.c | |
parent | a82aa55b5e5448f93fd1827d97752e19877db077 (diff) | |
download | cpython-c2824d41c32c3be5f100acdb1ff9f71ba7336b60.zip cpython-c2824d41c32c3be5f100acdb1ff9f71ba7336b60.tar.gz cpython-c2824d41c32c3be5f100acdb1ff9f71ba7336b60.tar.bz2 |
Issue #11915: threading.RLock()._release_save() raises a RuntimeError if the
lock was not acquired.
Diffstat (limited to 'Modules/_threadmodule.c')
-rw-r--r-- | Modules/_threadmodule.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c index 914d671..1aee77b 100644 --- a/Modules/_threadmodule.c +++ b/Modules/_threadmodule.c @@ -414,6 +414,12 @@ rlock_release_save(rlockobject *self) long owner; unsigned long count; + if (self->rlock_count == 0) { + PyErr_SetString(PyExc_RuntimeError, + "cannot release un-acquired lock"); + return NULL; + } + owner = self->rlock_owner; count = self->rlock_count; self->rlock_count = 0; |