summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwil paredes <code@dystedium.com>2013-09-28 02:43:45 -0700
committerwil paredes <code@dystedium.com>2013-09-28 02:43:45 -0700
commit7d570e4743410fe45ca8a8c760f6b5680f4f9273 (patch)
tree845b0b7107c18e2e0ef0b9b51710eb21867a832d
parente9b327cd8aeb4efadd3d2dc49795a15270957dbd (diff)
downloadredis-py-7d570e4743410fe45ca8a8c760f6b5680f4f9273.tar.gz
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 a97bac1..8792f5c 100644
--- a/redis/client.py
+++ b/redis/client.py
@@ -2204,6 +2204,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)