Advertisement
Kala666

sigalarm.py

Sep 12th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.74 KB | None | 0 0
  1. from time import sleep
  2. import signal
  3. import random
  4.  
  5. TIMEOUT = 3
  6.  
  7. def long_running_op():
  8.     print("Starting long-running op..")
  9.     for i in xrange(5):
  10.         duration = random.uniform(0.5, 3.1)
  11.         print("Running operation for %f seconds" % duration)
  12.         sleep(duration)
  13.         print("Step completed, reseting SIGALARM timer")
  14.         signal.alarm(TIMEOUT)
  15.        
  16.     print("Completed, clearing SIGALARM timer")
  17.     signal.alarm(0)
  18.  
  19. def main():
  20.     def signal_handler(sig_num, stack_frame):
  21.         print("Signal handler called")
  22.         raise ValueError("abort")
  23.    
  24.     signal.signal(signal.SIGALRM, signal_handler)
  25.    
  26.     signal.alarm(TIMEOUT)
  27.     long_running_op()
  28.    
  29. if __name__ == "__main__":
  30.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement