summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2024-07-10 16:11:23 +0100
committerErik Johnston <erik@matrix.org>2024-07-10 16:11:23 +0100
commitccc362cede7a420eb86d917627edf5750dd8c9f5 (patch)
tree6ae812a980949eea3c859a5784bfa2eaaf637320
parentFixup (diff)
downloadsynapse-ccc362cede7a420eb86d917627edf5750dd8c9f5.tar.xz
Concurrent
-rw-r--r--synapse/handlers/sliding_sync.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/synapse/handlers/sliding_sync.py b/synapse/handlers/sliding_sync.py
index b17d42ff1f..d720f228d1 100644
--- a/synapse/handlers/sliding_sync.py
+++ b/synapse/handlers/sliding_sync.py
@@ -47,6 +47,7 @@ from synapse.types import (
 )
 from synapse.types.handlers import OperationType, SlidingSyncConfig, SlidingSyncResult
 from synapse.types.state import StateFilter
+from synapse.util.async_helpers import concurrently_execute
 from synapse.visibility import filter_events_for_client
 
 if TYPE_CHECKING:
@@ -530,11 +531,12 @@ class SlidingSyncHandler:
 
         # Fetch room data
         rooms: Dict[str, SlidingSyncResult.RoomResult] = {}
-        for room_id, room_sync_config in relevant_room_map.items():
+
+        async def handle_room(room_id: str) -> None:
             room_sync_result = await self.get_room_sync_data(
                 user=sync_config.user,
                 room_id=room_id,
-                room_sync_config=room_sync_config,
+                room_sync_config=relevant_room_map[room_id],
                 room_membership_for_user_at_to_token=sync_room_map[room_id],
                 from_token=from_token,
                 to_token=to_token,
@@ -542,6 +544,8 @@ class SlidingSyncHandler:
 
             rooms[room_id] = room_sync_result
 
+        await concurrently_execute(handle_room, relevant_room_map, 10)
+
         extensions = await self.get_extensions_response(
             sync_config=sync_config, to_token=to_token
         )