diff options
author | Andy McCurdy <andy@andymccurdy.com> | 2013-11-26 19:05:50 -0800 |
---|---|---|
committer | Andy McCurdy <andy@andymccurdy.com> | 2013-11-26 19:05:50 -0800 |
commit | 08d1a55ae8c850b2dd759f62ad578b8538d77fa8 (patch) | |
tree | 57cb43271856f101c8ee43ddf4d5cdb14b059ee2 | |
parent | d569b46a3026b9c5d44868cc744ceb86f2b78a73 (diff) | |
parent | 7d570e4743410fe45ca8a8c760f6b5680f4f9273 (diff) | |
download | redis-py-08d1a55ae8c850b2dd759f62ad578b8538d77fa8.tar.gz |
Merge pull request #384 from dystedium/fixlock
Lock.release(): reorder code so assignment to self.acquired_until is protected by the lock.
-rw-r--r-- | redis/client.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/redis/client.py b/redis/client.py index 0c898bd..79a2a54 100644 --- a/redis/client.py +++ b/redis/client.py @@ -2207,6 +2207,7 @@ class Lock(object): raise ValueError("Cannot release an unlocked lock") existing = float(self.redis.get(self.name) or 1) # if the lock time is in the future, delete the lock - if existing >= self.acquired_until: - self.redis.delete(self.name) + delete_lock = existing >= self.acquired_until self.acquired_until = None + if delete_lock: + self.redis.delete(self.name) |