From 7c18d86e9c2002f06cdd1351739870b7105fe5a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Tue, 20 May 2025 13:59:26 +0200 Subject: [PATCH] properly closing event loops in client and server --- src/pydase/client/client.py | 5 ++++- src/pydase/server/server.py | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/pydase/client/client.py b/src/pydase/client/client.py index 620d2df..57d4c65 100644 --- a/src/pydase/client/client.py +++ b/src/pydase/client/client.py @@ -33,7 +33,10 @@ class NotifyDict(TypedDict): def asyncio_loop_thread(loop: asyncio.AbstractEventLoop) -> None: asyncio.set_event_loop(loop) - loop.run_forever() + try: + loop.run_forever() + finally: + loop.close() class Client: diff --git a/src/pydase/server/server.py b/src/pydase/server/server.py index 03887a3..508f328 100644 --- a/src/pydase/server/server.py +++ b/src/pydase/server/server.py @@ -182,7 +182,10 @@ class Server: This method should be called to start the server after it's been instantiated. """ - self._loop.run_until_complete(self.serve()) + try: + self._loop.run_until_complete(self.serve()) + finally: + self._loop.close() async def serve(self) -> None: process_id = os.getpid()