From b35c97f3119e5d988752b37cdbb895b8dcabcb14 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Wed, 19 Mar 2025 15:33:25 +0100 Subject: [PATCH] stop poller threads on shutdown: cosmetics cosmetics after gerrit Change-Id: I4d982f83e3fe5a8c8c821ac718e51b9a58de2a62 --- frappy/modulebase.py | 5 ++--- frappy/secnode.py | 10 +++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/frappy/modulebase.py b/frappy/modulebase.py index ca0a7e2..9a034f0 100644 --- a/frappy/modulebase.py +++ b/frappy/modulebase.py @@ -642,13 +642,12 @@ class Module(HasAccessibles): """ if self.__poller: self.stopPollThread() - if timeout > 0: - self.__poller.join(timeout) + self.__poller.join(timeout) if self.__poller.is_alive(): self.log.warning('can not stop poller') def shutdownModule(self): - """called when the sever shuts down + """called when the server shuts down any cleanup-work should be performed here, like closing threads and saving data. diff --git a/frappy/secnode.py b/frappy/secnode.py index 86fc9c8..65dc633 100644 --- a/frappy/secnode.py +++ b/frappy/secnode.py @@ -257,13 +257,13 @@ class SecNode: def shutdown_modules(self): """Call 'shutdownModule' for all modules.""" # stop pollers - for name in self.modules: - self.modules[name].stopPollThread() + for mod in self.modules.values(): + mod.stopPollThread() # do not yet join here, as we want to wait in parallel now = time.time() - deadline = now + 5 - for name in self.modules: - self.modules[name].joinPollThread(now - deadline) + deadline = now + 0.5 # should be long enough for most read functions to finish + for mod in self.modules.values(): + mod.joinPollThread(max(0, deadline - now)) now = time.time() for name in self._getSortedModules(): self.modules[name].shutdownModule()