diff options
author | Erik Johnston <erik@matrix.org> | 2014-08-15 11:50:14 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2014-08-15 11:50:14 +0100 |
commit | d72f897f078fa72548522440149369293f0d12b2 (patch) | |
tree | 4e8d692713f73389b89dea4fdba719b696c9f3af /synapse/util/lockutils.py | |
parent | Reimplement the get public rooms api to work with new DB schema (diff) | |
parent | Add a check to make sure that during state conflict res we only request a PDU... (diff) | |
download | synapse-d72f897f078fa72548522440149369293f0d12b2.tar.xz |
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
Conflicts: synapse/storage/stream.py
Diffstat (limited to 'synapse/util/lockutils.py')
-rw-r--r-- | synapse/util/lockutils.py | 12 |
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)) |