summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2017-07-13 11:23:53 +0100
committerErik Johnston <erik@matrix.org>2017-07-13 11:23:53 +0100
commitf60218ec412dd9ef13768d7c216da982f5eb6870 (patch)
treec70aa6cb4e7f7be1ff7c7e5721e8c09de0cbae94
parentMerge pull request #2362 from matrix-org/erikj/sync_user_users_who_share (diff)
downloadsynapse-f60218ec412dd9ef13768d7c216da982f5eb6870.tar.xz
Push: Don't acquire lock unless necessary
-rw-r--r--synapse/push/bulk_push_rule_evaluator.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/synapse/push/bulk_push_rule_evaluator.py b/synapse/push/bulk_push_rule_evaluator.py
index 803ac3e75b..f304f4daf2 100644
--- a/synapse/push/bulk_push_rule_evaluator.py
+++ b/synapse/push/bulk_push_rule_evaluator.py
@@ -213,6 +213,10 @@ class RulesForRoom(object):
         """
         state_group = context.state_group
 
+        if state_group and self.state_group == state_group:
+            logger.debug("Using cached rules for %r", self.room_id)
+            defer.returnValue(self.rules_by_user)
+
         with (yield self.linearizer.queue(())):
             if state_group and self.state_group == state_group:
                 logger.debug("Using cached rules for %r", self.room_id)