From 7d570e4743410fe45ca8a8c760f6b5680f4f9273 Mon Sep 17 00:00:00 2001 From: wil paredes Date: Sat, 28 Sep 2013 02:43:45 -0700 Subject: Lock.release(): reorder code so assignment to self.acquired_until is protected by the lock. --- redis/client.py | 5 +++-- 1 file 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) -- cgit v1.2.1