From 1b58d60abc33eea766ef03bc54d5acaf881ef69a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Thu, 4 Jul 2019 14:55:21 +0200 Subject: [PATCH] client: Fire out events when the fetcher loop iterates. --- pantalaimon/client.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pantalaimon/client.py b/pantalaimon/client.py index 1d953ee..450fc60 100644 --- a/pantalaimon/client.py +++ b/pantalaimon/client.py @@ -164,6 +164,10 @@ class PanClient(AsyncClient): self.task = None self.queue = queue + # Those two events are mainly used for testing. + self.new_fetch_task = asyncio.Event() + self.fetch_loop_event = asyncio.Event() + self.room_members_fetched = defaultdict(bool) self.send_semaphores = defaultdict(asyncio.Semaphore) @@ -254,6 +258,9 @@ class PanClient(AsyncClient): await self.history_fetch_queue.put(t) while True: + self.fetch_loop_event.set() + self.fetch_loop_event.clear() + try: await asyncio.sleep(self.pan_conf.history_fetch_delay) fetch_task = await self.history_fetch_queue.get() @@ -310,6 +317,8 @@ class PanClient(AsyncClient): self.server_name, self.user_id, fetch_task, task ) await self.history_fetch_queue.put(task) + self.new_fetch_task.set() + self.new_fetch_task.clear() else: await self.index.commit_events() self.delete_fetcher_task(fetch_task) @@ -343,6 +352,8 @@ class PanClient(AsyncClient): self.pan_store.save_fetcher_task(self.server_name, self.user_id, task) await self.history_fetch_queue.put(task) + self.new_fetch_task.set() + self.new_fetch_task.clear() async def keys_query_cb(self, response): if response.changed: