diff options
author | Erik Johnston <erikj@jki.re> | 2017-05-16 17:40:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-16 17:40:55 +0100 |
commit | 6fa8148ccbf0e645b5f87dcb5ab93fa13c95191d (patch) | |
tree | 6d4028791cc5656b90be063abdc2f7b2e73f68f4 /synapse | |
parent | Merge pull request #2227 from matrix-org/erikj/presence_caches (diff) | |
parent | Speed up get_joined_hosts (diff) | |
download | synapse-6fa8148ccbf0e645b5f87dcb5ab93fa13c95191d.tar.xz |
Merge pull request #2228 from matrix-org/erikj/speed_up_get_hosts
Speed up get_joined_hosts
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/handlers/room_member.py | 3 | ||||
-rw-r--r-- | synapse/storage/roommember.py | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/synapse/handlers/room_member.py b/synapse/handlers/room_member.py index ab87632d99..1ca88517a2 100644 --- a/synapse/handlers/room_member.py +++ b/synapse/handlers/room_member.py @@ -739,10 +739,11 @@ class RoomMemberHandler(BaseHandler): if len(current_state_ids) == 1 and create_event_id: defer.returnValue(self.hs.is_mine_id(create_event_id)) - for (etype, state_key), event_id in current_state_ids.items(): + for etype, state_key in current_state_ids: if etype != EventTypes.Member or not self.hs.is_mine_id(state_key): continue + event_id = current_state_ids[(etype, state_key)] event = yield self.store.get_event(event_id, allow_none=True) if not event: continue diff --git a/synapse/storage/roommember.py b/synapse/storage/roommember.py index 2fa20bd87c..404f3583eb 100644 --- a/synapse/storage/roommember.py +++ b/synapse/storage/roommember.py @@ -534,7 +534,7 @@ class RoomMemberStore(SQLBaseStore): assert state_group is not None joined_hosts = set() - for (etype, state_key), event_id in current_state_ids.items(): + for etype, state_key in current_state_ids: if etype == EventTypes.Member: try: host = get_domain_from_id(state_key) @@ -545,6 +545,7 @@ class RoomMemberStore(SQLBaseStore): if host in joined_hosts: continue + event_id = current_state_ids[(etype, state_key)] event = yield self.get_event(event_id, allow_none=True) if event and event.content["membership"] == Membership.JOIN: joined_hosts.add(intern_string(host)) |