FreeBSD KeyboardInterrupt not captured

radim.marek at gmail.com radim.marek at gmail.com
Wed May 7 07:00:08 EDT 2008


Hi Guys,

during testing of my project on FreeBSD I've discovered stange
'feature' of time.sleep(). It works if single thread is running, but
when multi-threaded, the SIGINT signal seems not to be handled in same
way.

I've found three discussion about similar behavior with os.system()
but so far none of the suggested patches worked.

I've limited test to following code:

import time
import sys
import threading

class MyThread(threading.Thread):
        def __init__(self):
                super(MyThread, self).__init__()
                self.start()

        def run(self):
                while True:
                        try:
                                time.sleep(10)
                        except KeyboardInterrupt:
                                print 'thread keyboard interrupt'

def main():
        my = MyThread()

        while True:
                try:
                        time.sleep(5)
                except KeyboardInterrupt:
                        print 'got it'

if __name__ == '__main__':
        main()


Any suggestions?

Best regards,

Radim



More information about the Python-list mailing list