Level beginner
I am using python 2.7 version on ubuntu.
I have a confusion regarding a small code snippet in python. I know that while True in python means to loop infinitely. I have the following code:
#!/usr/bin/env python
import signal
import time
def ctrlc_catcher(signum, frm):
print "Process can't be killed with ctrl-c!"
def alarm_catcher(signum,frame):
print "Got an alarm"
signal.signal(signal.SIGINT, ctrlc_catcher)
signal.signal(signal.SIGALRM, alarm_catcher)
while True:
signal.alarm(1)
pass
When I execute the programm the output is blank, when I hit Ctrl-C key it displays "Process can't be....." message.
My question is why the signal.alarm(1) is not working ?
However if I put a small pause using
while True:
signal.alarm(1)
time.sleep(1)
pass
after it then the alarm gets triggered and in the output screen I see "Got an alarm" message after every second. What is time.sleep(1) doing so that the alarm gets triggered? Thanks