mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-08-10 23:10:10 -04:00
Refactor and convert Linearizer
to async (#12357)
Refactor and convert `Linearizer` to async. This makes a `Linearizer` cancellation bug easier to fix. Also refactor to use an async context manager, which eliminates an unlikely footgun where code that doesn't immediately use the context manager could forget to release the lock. Signed-off-by: Sean Quah <seanq@element.io>
This commit is contained in:
parent
ab3fdcf960
commit
800ba87cc8
21 changed files with 104 additions and 115 deletions
|
@ -1030,7 +1030,7 @@ class PresenceHandler(BasePresenceHandler):
|
|||
is_syncing: Whether or not the user is now syncing
|
||||
sync_time_msec: Time in ms when the user was last syncing
|
||||
"""
|
||||
with (await self.external_sync_linearizer.queue(process_id)):
|
||||
async with self.external_sync_linearizer.queue(process_id):
|
||||
prev_state = await self.current_state_for_user(user_id)
|
||||
|
||||
process_presence = self.external_process_to_current_syncs.setdefault(
|
||||
|
@ -1071,7 +1071,7 @@ class PresenceHandler(BasePresenceHandler):
|
|||
|
||||
Used when the process has stopped/disappeared.
|
||||
"""
|
||||
with (await self.external_sync_linearizer.queue(process_id)):
|
||||
async with self.external_sync_linearizer.queue(process_id):
|
||||
process_presence = self.external_process_to_current_syncs.pop(
|
||||
process_id, set()
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue