summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy McCurdy <andy@andymccurdy.com>2013-11-26 19:05:50 -0800
committerAndy McCurdy <andy@andymccurdy.com>2013-11-26 19:05:50 -0800
commit08d1a55ae8c850b2dd759f62ad578b8538d77fa8 (patch)
tree57cb43271856f101c8ee43ddf4d5cdb14b059ee2
parentd569b46a3026b9c5d44868cc744ceb86f2b78a73 (diff)
parent7d570e4743410fe45ca8a8c760f6b5680f4f9273 (diff)
downloadredis-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.py5
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)