From fe4b68e1153ddd636f6bee0c0a6795aafd25ab3d Mon Sep 17 00:00:00 2001 From: adator <85586985+adator85@users.noreply.github.com> Date: Thu, 20 Nov 2025 15:13:36 +0100 Subject: [PATCH] Fix blocking Coroutines when shutdown! --- core/base.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/base.py b/core/base.py index 648d740..763e709 100644 --- a/core/base.py +++ b/core/base.py @@ -495,11 +495,17 @@ class Base: async def shutdown(self) -> None: """Methode qui va préparer l'arrêt complêt du service """ + # Stop RpcServer if running + await self.Loader.RpcServer.stop_server() + # unload modules. self.logs.debug(f"=======> Unloading all modules!") for module in self.Loader.ModuleUtils.model_get_loaded_modules().copy(): await self.Loader.ModuleUtils.unload_one_module(module.module_name) + self.logs.debug(f"=======> Closing all Coroutines!") + await asyncio.gather(*self.running_asynctasks) + # Nettoyage des timers self.logs.debug(f"=======> Checking for Timers to stop") for timer in self.running_timers: @@ -527,8 +533,6 @@ class Base: self.running_sockets.remove(soc) self.logs.debug(f"> Socket ==> closed {str(soc.fileno())}") - await self.Loader.RpcServer.stop_server() - self.db_close() return None