From b7ba97f30cbd2179a5715612b34c27c6afe8f602 Mon Sep 17 00:00:00 2001 From: "Mike A." Date: Fri, 2 Aug 2024 13:07:31 +0200 Subject: [PATCH] fix: Create new event loop for cleanup if current one is not running --- findmy/util/closable.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/findmy/util/closable.py b/findmy/util/closable.py index 406a037..fbac882 100644 --- a/findmy/util/closable.py +++ b/findmy/util/closable.py @@ -29,6 +29,9 @@ class Closable(ABC): """Attempt to automatically clean up when garbage collected.""" try: loop = self._loop or asyncio.get_running_loop() - loop.call_soon_threadsafe(loop.create_task, self.close()) + if loop.is_running(): + loop.call_soon_threadsafe(loop.create_task, self.close()) + else: + loop.run_until_complete(self.close()) except RuntimeError: pass