From 6dddb3766d6155bb14f36f856927f3179962c427 Mon Sep 17 00:00:00 2001 From: "Ian Grant (aider)" <ian.conway.grant@gmail.com> Date: Fri, 16 May 2025 18:45:33 -0400 Subject: [PATCH] fix: add input timeout handling in monitoring --- run_on_maap.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/run_on_maap.py b/run_on_maap.py index c2014ac..20c0a23 100644 --- a/run_on_maap.py +++ b/run_on_maap.py @@ -35,6 +35,7 @@ import shutil from pathlib import Path from typing import Dict, List import time +import signal import click from maap.maap import MAAP @@ -238,10 +239,15 @@ def main( print(f"\nMonitoring suspended. Press 'r' to resubmit failed jobs, " f"press Ctrl-C to exit, or wait {timeout} seconds to resume.") try: + # wait for user input with timeout + signal.signal(signal.SIGALRM, lambda s, f: (_ for _ in ()).throw(TimeoutError())) + signal.alarm(timeout) answer = input().strip().lower() + signal.alarm(0) if answer == "r": return "resubmit" - time.sleep(timeout) + return "resume" + except TimeoutError: return "resume" except KeyboardInterrupt: return "exit" -- GitLab