diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-05-30 16:45:44 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-05-30 16:45:44 -0400 |
commit | 661aac8411f9f2ee5c5baebefee960fdbeda5c21 (patch) | |
tree | 230d5bfaabc5f996487371c82a4988bae1279c7f /dogpile | |
parent | e9011d84952fda433b45bd4e0ef7a11bd764f582 (diff) | |
download | dogpile-core-master.tar.gz |
Diffstat (limited to 'dogpile')
-rw-r--r-- | dogpile/core/dogpile.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/dogpile/core/dogpile.py b/dogpile/core/dogpile.py index 2e3ca0e..4ab52b0 100644 --- a/dogpile/core/dogpile.py +++ b/dogpile/core/dogpile.py @@ -127,6 +127,7 @@ class Lock(object): log.debug("no value, waiting for create lock") self.mutex.acquire() + value = NO_VALUE = object() try: log.debug("value creation lock %r acquired" % self.mutex) @@ -150,7 +151,14 @@ class Lock(object): return created finally: if not async: - self.mutex.release() + try: + self.mutex.release() + except: + if self.only_warn_on_release_failure \ + and value is not NO_VALUE: + raise LockReleaseFailure(value) + else: + raise log.debug("Released creation lock") |