From 419253eacd4d1e40041f0d5bc498bbd7951e24eb Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Fri, 30 May 2025 14:22:51 +0200 Subject: [PATCH] Ensure loop threads are finished before returning from their context. --- ircplom.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ircplom.py b/ircplom.py index 53b0788..48bf8e9 100755 --- a/ircplom.py +++ b/ircplom.py @@ -280,13 +280,15 @@ class Loop: self._q_to_main = q_to_main self._bonus_iterator = bonus_iterator self._q_input: SimpleQueue[Event] = SimpleQueue() - Thread(target=self._loop, daemon=False).start() + self._thread = Thread(target=self._loop, daemon=False) + self._thread.start() def __enter__(self) -> Self: return self def __exit__(self, *_) -> Literal[False]: self._q_input.put(Event('QUIT')) + self._thread.join() return False # re-raise any exception that above ignored def put(self, event: Event) -> None: -- 2.30.2