home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / MacHacksBug / Python 1.5.2c1 / Lib / test / test_signal.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2000-06-23  |  1.7 KB  |  60 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. verbose
  5. if sys.platform[:3] in ('win', 'os2'):
  6.     raise ImportError, "Can't test signal on %s" % sys.platform[:3]
  7.  
  8. if verbose:
  9.     x = '-x'
  10. else:
  11.     x = '+x'
  12. pid = os.getpid()
  13. script = '\n (\n\tset %(x)s\n\tsleep 2\n\tkill -5 %(pid)d\n\tsleep 2\n\tkill -2 %(pid)d\n\tsleep 2\n\tkill -3 %(pid)d\n ) &\n' % vars()
  14.  
  15. def handlerA(*args):
  16.     if verbose:
  17.         print 'handlerA', args
  18.     
  19.  
  20. HandlerBCalled = 'HandlerBCalled'
  21.  
  22. def handlerB(*args):
  23.     if verbose:
  24.         print 'handlerB', args
  25.     
  26.     raise HandlerBCalled, args
  27.  
  28. signal.alarm(20)
  29. signal.signal(5, handlerA)
  30. signal.signal(2, handlerB)
  31. signal.signal(3, signal.SIG_IGN)
  32. signal.signal(signal.SIGALRM, signal.default_int_handler)
  33. os.system(script)
  34. print 'starting pause() loop...'
  35.  
  36. try:
  37.     while 1:
  38.         if verbose:
  39.             print 'call pause()...'
  40.         
  41.         
  42.         try:
  43.             signal.pause()
  44.             if verbose:
  45.                 print 'pause() returned'
  46.         except HandlerBCalled:
  47.             if verbose:
  48.                 print 'HandlerBCalled exception caught'
  49.             
  50.         except:
  51.             verbose
  52.  
  53. except KeyboardInterrupt:
  54.     if verbose:
  55.         print 'KeyboardInterrupt (assume the alarm() went off)'
  56.     
  57. except:
  58.     verbose
  59.  
  60.