From ad05b2076c723325eb3a4dab0bb37f6e77661561 Mon Sep 17 00:00:00 2001 From: Kuba <132459354+KubaPro010@users.noreply.github.com> Date: Fri, 31 Oct 2025 18:26:23 +0100 Subject: [PATCH] make it safer --- radioPlayer.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/radioPlayer.py b/radioPlayer.py index 41729df..ce2b03c 100644 --- a/radioPlayer.py +++ b/radioPlayer.py @@ -44,6 +44,7 @@ logger = log95.log95("radioPlayer", logger_level) exit_pending = False intr_time = 0 +exit_lock = threading.Lock() @dataclass class Process: @@ -105,15 +106,16 @@ procman = ProcessManager() def handle_sigint(signum, frame): global exit_pending, intr_time - logger.info("Received SIGINT") - if (time.time() - intr_time) > 5: - intr_time = time.time() - logger.info("Will quit on song end.") - exit_pending = True - else: - logger.warning("Force-Quit pending") - procman.stop_all() - exit(0) + with exit_lock: + logger.info("Received SIGINT") + if (time.time() - intr_time) > 5: + intr_time = time.time() + logger.info("Will quit on song end.") + exit_pending = True + else: + logger.warning("Force-Quit pending") + procman.stop_all() + exit(0) signal.signal(signal.SIGINT, handle_sigint)