GNU Info

Info Node: (python2.1-lib.info)Signal Example

(python2.1-lib.info)Signal Example


Prev: signal Up: signal
Enter node , (file) or (file)node

Example
-------

Here is a minimal example program. It uses the `alarm()' function to
limit the time spent waiting to open a file; this is useful if the file
is for a serial device that may not be turned on, which would normally
cause the `os.open()' to hang indefinitely.  The solution is to set a
5-second alarm before opening the file; if the operation takes too
long, the alarm signal will be sent, and the handler raises an
exception.

     import signal, os, FCNTL
     
     def handler(signum, frame):
         print 'Signal handler called with signal', signum
         raise IOError, "Couldn't open device!"
     
     # Set the signal handler and a 5-second alarm
     signal.signal(signal.SIGALRM, handler)
     signal.alarm(5)
     
     # This open() may hang indefinitely
     fd = os.open('/dev/ttyS0', FCNTL.O_RDWR)
     
     signal.alarm(0)          # Disable the alarm


automatically generated by info2www version 1.2.2.9