Well, at least a mystery to me. Consider the following:
import time import signal def catcher(signum, _): print \"beat!\" signal.signal(signal.SIGALRM
The signal.ITIMER_VIRTUAL only counts down with the process is running. time.sleep(5) suspends the process so the timer doesn't decrement.
signal.ITIMER_VIRTUAL
time.sleep(5)