summary refs log tree commit diff
path: root/synapse/handlers
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2020-05-06 11:14:13 +0100
committerGitHub <noreply@github.com>2020-05-06 11:14:13 +0100
commitb26f3e582c7d9f80b35c0c336bfdef081d580d1f (patch)
treea727914b85f4233b5197a940dc009c8b9337bfdd /synapse/handlers
parentMerge pull request #7427 from matrix-org/rav/fix_dropped_messages (diff)
parentMerge branch 'release-v1.13.0' into erikj/faster_device_lists_fetch (diff)
downloadsynapse-b26f3e582c7d9f80b35c0c336bfdef081d580d1f.tar.xz
Merge pull request #7423 from matrix-org/erikj/faster_device_lists_fetch
Speed up fetching device lists changes in sync.
Diffstat (limited to 'synapse/handlers')
-rw-r--r--synapse/handlers/sync.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index 4f76b7a743..00718d7f2d 100644
--- a/synapse/handlers/sync.py
+++ b/synapse/handlers/sync.py
@@ -1143,10 +1143,14 @@ class SyncHandler(object):
                 user_id
             )
 
-            tracked_users = set(users_who_share_room)
-
-            # Always tell the user about their own devices
-            tracked_users.add(user_id)
+            # Always tell the user about their own devices. We check as the user
+            # ID is almost certainly already included (unless they're not in any
+            # rooms) and taking a copy of the set is relatively expensive.
+            if user_id not in users_who_share_room:
+                users_who_share_room = set(users_who_share_room)
+                users_who_share_room.add(user_id)
+
+            tracked_users = users_who_share_room
 
             # Step 1a, check for changes in devices of users we share a room with
             users_that_have_changed = await self.store.get_users_whose_devices_changed(