From 0f110dc7b92e9a18dec2f377c3a7bbf9b8542350 Mon Sep 17 00:00:00 2001 From: Andy Lee Date: Wed, 13 Aug 2025 22:42:25 -0700 Subject: [PATCH] core: unify atexit to always call _finalize_process (covers both self-launched and adopted servers) --- packages/leann-core/src/leann/embedding_server_manager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/leann-core/src/leann/embedding_server_manager.py b/packages/leann-core/src/leann/embedding_server_manager.py index 5ee8f08..6922d8c 100644 --- a/packages/leann-core/src/leann/embedding_server_manager.py +++ b/packages/leann-core/src/leann/embedding_server_manager.py @@ -352,8 +352,8 @@ class EmbeddingServerManager: # Register atexit callback only when we actually start a process if not self._atexit_registered: - # Use a lambda to avoid issues with bound methods - atexit.register(lambda: self.stop_server() if self.server_process else None) + # Always attempt best-effort finalize at interpreter exit + atexit.register(self._finalize_process) self._atexit_registered = True # Touch finalizer so it knows there is a live process if getattr(self, "_finalizer", None) is not None and not self._finalizer.alive: