From 0d9d84dac0afa3b11af046d61b015d172ffec3c8 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Tue, 4 May 2021 18:06:23 +0100 Subject: fix logging contexts --- synapse/crypto/keyring.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'synapse') diff --git a/synapse/crypto/keyring.py b/synapse/crypto/keyring.py index a8c8df2bad..eb88873eac 100644 --- a/synapse/crypto/keyring.py +++ b/synapse/crypto/keyring.py @@ -134,17 +134,12 @@ class _Queue: d = defer.Deferred() self._next_values.append((value, d)) - if self._is_processing: - return await d + if not self._is_processing: + run_as_background_process(self._name, self._unsafe_process) - run_as_background_process(self._name, self._unsafe_process) - - return await d + return await make_deferred_yieldable(d) async def _unsafe_process(self): - # We purposefully defer to the next loop. - await self._clock.sleep(0) - try: if self._is_processing: return @@ -152,6 +147,9 @@ class _Queue: self._is_processing = True while self._next_values: + # We purposefully defer to the next loop. + await self._clock.sleep(0) + next_values = self._next_values self._next_values = [] -- cgit 1.5.1