Convert the device message and pagination handlers to async/await. (#7678)

This commit is contained in:
Patrick Cloke 2020-06-16 08:06:17 -04:00 committed by GitHub
parent 03619324fc
commit 98c4e35e3c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 31 deletions

View file

@ -15,7 +15,6 @@
# limitations under the License.
import logging
from twisted.internet import defer
from twisted.python.failure import Failure
from synapse.api.constants import EventTypes, Membership
@ -97,8 +96,7 @@ class PaginationHandler(object):
job["longest_max_lifetime"],
)
@defer.inlineCallbacks
def purge_history_for_rooms_in_range(self, min_ms, max_ms):
async def purge_history_for_rooms_in_range(self, min_ms, max_ms):
"""Purge outdated events from rooms within the given retention range.
If a default retention policy is defined in the server's configuration and its
@ -137,7 +135,7 @@ class PaginationHandler(object):
include_null,
)
rooms = yield self.store.get_rooms_for_retention_period_in_range(
rooms = await self.store.get_rooms_for_retention_period_in_range(
min_ms, max_ms, include_null
)
@ -165,9 +163,9 @@ class PaginationHandler(object):
# Figure out what token we should start purging at.
ts = self.clock.time_msec() - max_lifetime
stream_ordering = yield self.store.find_first_stream_ordering_after_ts(ts)
stream_ordering = await self.store.find_first_stream_ordering_after_ts(ts)
r = yield self.store.get_room_event_before_stream_ordering(
r = await self.store.get_room_event_before_stream_ordering(
room_id, stream_ordering,
)
if not r:
@ -227,8 +225,7 @@ class PaginationHandler(object):
)
return purge_id
@defer.inlineCallbacks
def _purge_history(self, purge_id, room_id, token, delete_local_events):
async def _purge_history(self, purge_id, room_id, token, delete_local_events):
"""Carry out a history purge on a room.
Args:
@ -237,14 +234,11 @@ class PaginationHandler(object):
token (str): topological token to delete events before
delete_local_events (bool): True to delete local events as well as
remote ones
Returns:
Deferred
"""
self._purges_in_progress_by_room.add(room_id)
try:
with (yield self.pagination_lock.write(room_id)):
yield self.storage.purge_events.purge_history(
with await self.pagination_lock.write(room_id):
await self.storage.purge_events.purge_history(
room_id, token, delete_local_events
)
logger.info("[purge] complete")
@ -282,9 +276,7 @@ class PaginationHandler(object):
await self.store.get_room_version_id(room_id)
# first check that we have no users in this room
joined = await defer.maybeDeferred(
self.store.is_host_joined, room_id, self._server_name
)
joined = await self.store.is_host_joined(room_id, self._server_name)
if joined:
raise SynapseError(400, "Users are still joined to this room")