From 860df6e658d8862cc4302cef54351a13fb89f75f Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Wed, 17 Apr 2024 03:37:43 +0200 Subject: [PATCH] Core: clean up observer thread --- BaseClasses.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 289440b4bb..22fb73617f 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -100,6 +100,7 @@ class MultiWorld(): class Observer(threading.Thread): current_function: str entered: float + shutdown: bool = False def __init__(self): self.current_function = "" @@ -119,8 +120,8 @@ class MultiWorld(): self.current_function = "" def run(self): - while 1: - time.sleep(60) + while not self.shutdown: + time.sleep(1) if self.current_function: now = time.perf_counter() if now - self.entered > 60: @@ -248,6 +249,11 @@ class MultiWorld(): "world's random object instead (usually self.random)") self.plando_options = PlandoOptions.none + def __del__(self): + observer = getattr(self, "observer", None) + if observer: + observer.shutdown = True + def get_all_ids(self) -> Tuple[int, ...]: return self.player_ids + tuple(self.groups)