summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Harlow <harlowja@yahoo-inc.com>2014-09-16 16:48:18 -0700
committerJoshua Harlow <harlowja@gmail.com>2014-09-17 09:01:55 -0700
commitfab18f8c80ff287f5a41935f1e648984018fad16 (patch)
treefa2e49720c949988077a532da59cfeefbb42adf0
parent90792db9d4f3ffac6dc7a5a72345bbadfe55ee46 (diff)
downloadtooz-fab18f8c80ff287f5a41935f1e648984018fad16.tar.gz
On lock removal validate that they key was actually deleted
Instead of assuming the lock was released (when it might have not been) be more reliable and return whether it really was or was not by validating the reply. Change-Id: I70b2e1946d5101c7fbbf4ed9f15007bb98e92581
-rw-r--r--tooz/drivers/memcached.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/tooz/drivers/memcached.py b/tooz/drivers/memcached.py
index 65686ed..999b711 100644
--- a/tooz/drivers/memcached.py
+++ b/tooz/drivers/memcached.py
@@ -67,8 +67,11 @@ class MemcachedLock(locking.Lock):
raise Retry
def release(self):
- self.coord._acquired_locks.remove(self)
- return bool(self.coord.client.delete(self.name))
+ if self.coord.client.delete(self.name, noreply=False):
+ self.coord._acquired_locks.remove(self)
+ return True
+ else:
+ return False
def heartbeat(self):
"""Keep the lock alive."""