28
28
from synapse .events import EventBase
29
29
from synapse .events .utils import strip_event
30
30
from synapse .handlers .relations import BundledAggregations
31
+ from synapse .logging .opentracing import start_active_span , tag_args , trace
31
32
from synapse .storage .databases .main .roommember import extract_heroes_from_room_summary
32
33
from synapse .storage .databases .main .stream import CurrentStateDeltaMembership
33
34
from synapse .storage .roommember import MemberSummary
43
44
)
44
45
from synapse .types .handlers import OperationType , SlidingSyncConfig , SlidingSyncResult
45
46
from synapse .types .state import StateFilter
47
+ from synapse .util .async_helpers import concurrently_execute
46
48
from synapse .visibility import filter_events_for_client
47
49
48
50
if TYPE_CHECKING :
@@ -592,11 +594,14 @@ async def current_sync_for_user(
592
594
593
595
# Fetch room data
594
596
rooms : Dict [str , SlidingSyncResult .RoomResult ] = {}
595
- for room_id , room_sync_config in relevant_room_map .items ():
597
+
598
+ @trace
599
+ @tag_args
600
+ async def handle_room (room_id : str ) -> None :
596
601
room_sync_result = await self .get_room_sync_data (
597
602
user = sync_config .user ,
598
603
room_id = room_id ,
599
- room_sync_config = room_sync_config ,
604
+ room_sync_config = relevant_room_map [ room_id ] ,
600
605
room_membership_for_user_at_to_token = room_membership_for_user_map [
601
606
room_id
602
607
],
@@ -606,6 +611,9 @@ async def current_sync_for_user(
606
611
607
612
rooms [room_id ] = room_sync_result
608
613
614
+ with start_active_span ("sliding_sync.generate_room_entries" ):
615
+ await concurrently_execute (handle_room , relevant_room_map , 10 )
616
+
609
617
extensions = await self .get_extensions_response (
610
618
sync_config = sync_config , to_token = to_token
611
619
)
0 commit comments