signal.alarm not triggering exception on time
I've slightly modified the signal example from the official docs (bottom of page). I'm calling sleep 10 but I would like an alarm to be raised after 1 second. When I run the following snippet it takes way more than 1 second to trigger the exception (I think it runs the full 10 seconds). import signal, os def handler(signum, frame): print 'Interrupted', signum raise IOError("Should after 1 second") signal.signal(signal.SIGALRM, handler) signal.alarm(1) os.system('sleep 10') signal.alarm(0) How can I be sure to terminate a function after a timeout in a single-threaded application? jfs From the