From a2a89eb573d377ab8de2454fbf85a7bef7b8bb61 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Mon, 15 Dec 2025 15:24:28 +0100 Subject: [PATCH] alarm! --- radioPlayer.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/radioPlayer.py b/radioPlayer.py index 51d0a7a..2f1c42b 100644 --- a/radioPlayer.py +++ b/radioPlayer.py @@ -152,7 +152,14 @@ class ModuleManager: assert spec.loader try: start = time.perf_counter() - spec.loader.exec_module(module) + if sys.platform == "linux": + def handler(signum, frame): raise TimeoutError("Module loading timed out") + signal.signal(signal.SIGALRM, handler) + signal.alarm(5) + try: spec.loader.exec_module(module) + except TimeoutError: self.logger.error(f"Module {module_name} took too long to load and was skipped.") + finally: + if sys.platform == "linux": signal.alarm(0) if (time_took := time.perf_counter() - start) > 0.15: self.logger.warning(f"{module_name} took {time_took:.1f}s to start") except Exception as e: traceback.print_exc(file=self.logger.output)