Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit a9b3933

Browse files
authored
Merge pull request #6484 from matrix-org/erikj/port_sync_handler
Port SyncHandler to async/await
2 parents f3ea2f5 + b3a4e35 commit a9b3933

File tree

12 files changed

+208
-202
lines changed

12 files changed

+208
-202
lines changed

changelog.d/6484.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Port SyncHandler to async/await.

synapse/handlers/events.py

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
import logging
1717
import random
1818

19-
from twisted.internet import defer
20-
2119
from synapse.api.constants import EventTypes, Membership
2220
from synapse.api.errors import AuthError, SynapseError
2321
from synapse.events import EventBase
@@ -50,9 +48,8 @@ def __init__(self, hs):
5048
self._server_notices_sender = hs.get_server_notices_sender()
5149
self._event_serializer = hs.get_event_client_serializer()
5250

53-
@defer.inlineCallbacks
5451
@log_function
55-
def get_stream(
52+
async def get_stream(
5653
self,
5754
auth_user_id,
5855
pagin_config,
@@ -69,17 +66,17 @@ def get_stream(
6966
"""
7067

7168
if room_id:
72-
blocked = yield self.store.is_room_blocked(room_id)
69+
blocked = await self.store.is_room_blocked(room_id)
7370
if blocked:
7471
raise SynapseError(403, "This room has been blocked on this server")
7572

7673
# send any outstanding server notices to the user.
77-
yield self._server_notices_sender.on_user_syncing(auth_user_id)
74+
await self._server_notices_sender.on_user_syncing(auth_user_id)
7875

7976
auth_user = UserID.from_string(auth_user_id)
8077
presence_handler = self.hs.get_presence_handler()
8178

82-
context = yield presence_handler.user_syncing(
79+
context = await presence_handler.user_syncing(
8380
auth_user_id, affect_presence=affect_presence
8481
)
8582
with context:
@@ -91,7 +88,7 @@ def get_stream(
9188
# thundering herds on restart.
9289
timeout = random.randint(int(timeout * 0.9), int(timeout * 1.1))
9390

94-
events, tokens = yield self.notifier.get_events_for(
91+
events, tokens = await self.notifier.get_events_for(
9592
auth_user,
9693
pagin_config,
9794
timeout,
@@ -112,14 +109,14 @@ def get_stream(
112109
# Send down presence.
113110
if event.state_key == auth_user_id:
114111
# Send down presence for everyone in the room.
115-
users = yield self.state.get_current_users_in_room(
112+
users = await self.state.get_current_users_in_room(
116113
event.room_id
117114
)
118-
states = yield presence_handler.get_states(users, as_event=True)
115+
states = await presence_handler.get_states(users, as_event=True)
119116
to_add.extend(states)
120117
else:
121118

122-
ev = yield presence_handler.get_state(
119+
ev = await presence_handler.get_state(
123120
UserID.from_string(event.state_key), as_event=True
124121
)
125122
to_add.append(ev)
@@ -128,7 +125,7 @@ def get_stream(
128125

129126
time_now = self.clock.time_msec()
130127

131-
chunks = yield self._event_serializer.serialize_events(
128+
chunks = await self._event_serializer.serialize_events(
132129
events,
133130
time_now,
134131
as_client_event=as_client_event,
@@ -151,8 +148,7 @@ def __init__(self, hs):
151148
super(EventHandler, self).__init__(hs)
152149
self.storage = hs.get_storage()
153150

154-
@defer.inlineCallbacks
155-
def get_event(self, user, room_id, event_id):
151+
async def get_event(self, user, room_id, event_id):
156152
"""Retrieve a single specified event.
157153
158154
Args:
@@ -167,15 +163,15 @@ def get_event(self, user, room_id, event_id):
167163
AuthError if the user does not have the rights to inspect this
168164
event.
169165
"""
170-
event = yield self.store.get_event(event_id, check_room_id=room_id)
166+
event = await self.store.get_event(event_id, check_room_id=room_id)
171167

172168
if not event:
173169
return None
174170

175-
users = yield self.store.get_users_in_room(event.room_id)
171+
users = await self.store.get_users_in_room(event.room_id)
176172
is_peeking = user.to_string() not in users
177173

178-
filtered = yield filter_events_for_client(
174+
filtered = await filter_events_for_client(
179175
self.storage, user.to_string(), [event], is_peeking=is_peeking
180176
)
181177

0 commit comments

Comments
 (0)