summary refs log tree commit diff
path: root/synapse/util/lockutils.py
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2014-08-14 16:06:02 +0100
committerPaul "LeoNerd" Evans <paul@matrix.org>2014-08-14 16:06:05 +0100
commit657ab9ba9d0b1afda959267d05479983ce8bfaa4 (patch)
tree81462b8e908ca0d3ce6f3590074780b2f4d07c67 /synapse/util/lockutils.py
parentBe more helpful when failing to register/login, stating why (communication er... (diff)
downloadsynapse-657ab9ba9d0b1afda959267d05479983ce8bfaa4.tar.xz
Put some DEBUG logging in lockutils.py so we can debug roomlocks
Diffstat (limited to '')
-rw-r--r--synapse/util/lockutils.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/synapse/util/lockutils.py b/synapse/util/lockutils.py

index 758be0b901..d0bb50d035 100644 --- a/synapse/util/lockutils.py +++ b/synapse/util/lockutils.py
@@ -24,9 +24,10 @@ logger = logging.getLogger(__name__) class Lock(object): - def __init__(self, deferred): + def __init__(self, deferred, key): self._deferred = deferred self.released = False + self.key = key def release(self): self.released = True @@ -38,9 +39,10 @@ class Lock(object): self.release() def __enter__(self): - return self + return self def __exit__(self, type, value, traceback): + logger.debug("Releasing lock for key=%r", self.key) self.release() @@ -63,6 +65,10 @@ class LockManager(object): self._lock_deferreds[key] = new_deferred if old_deferred: + logger.debug("Queueing on lock for key=%r", key) yield old_deferred + logger.debug("Obtained lock for key=%r", key) + else: + logger.debug("Entering uncontended lock for key=%r", key) - defer.returnValue(Lock(new_deferred)) + defer.returnValue(Lock(new_deferred, key))