From 08e49fd14e7f598a4308199eaa79ee412a73a64f Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sat, 30 Mar 2024 09:06:32 +0100 Subject: [PATCH] Ignore CancelledError from actor system tasks --- syndicate/actor.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/syndicate/actor.py b/syndicate/actor.py index 425062f..ef15d8a 100644 --- a/syndicate/actor.py +++ b/syndicate/actor.py @@ -57,12 +57,18 @@ class System: def queue_task(self, thunk): async def task(): - await ensure_awaitable(thunk()) + try: + await ensure_awaitable(thunk()) + except asyncio.CancelledError: + pass return self.loop.create_task(task()) def queue_task_threadsafe(self, thunk): async def task(): - await ensure_awaitable(thunk()) + try: + await ensure_awaitable(thunk()) + except asyncio.CancelledError: + pass return self.loop.call_soon_threadsafe(lambda: asyncio.run_coroutine_threadsafe(task(), self.loop)) async def ensure_awaitable(value): @@ -247,6 +253,8 @@ class Facet: async def guarded_task(): try: await coro_fn(self) + except asyncio.CancelledError: + pass except: import traceback traceback.print_exc()