diff options
author | wil paredes <code@dystedium.com> | 2013-09-28 02:43:45 -0700 |
---|---|---|
committer | wil paredes <code@dystedium.com> | 2013-09-28 02:43:45 -0700 |
commit | 7d570e4743410fe45ca8a8c760f6b5680f4f9273 (patch) | |
tree | 845b0b7107c18e2e0ef0b9b51710eb21867a832d | |
parent | e9b327cd8aeb4efadd3d2dc49795a15270957dbd (diff) | |
download | redis-py-7d570e4743410fe45ca8a8c760f6b5680f4f9273.tar.gz |
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 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) |