thread; interrupt_main() doesn't seem to work?

Jerry Sievers jerry at
Sun Nov 21 19:13:06 CET 2004

Fellow Pythonists; According to the docs


          Raise a KeyboardInterrupt in the main thread. A subthread can use
     this function to interrupt the main thread. New in version 2.3.

Therefore, I was expecting this short test prog to run and then finish
with the KeyboardInterrupt exception at the bottom in the pause
routine.  It doesn't stop there but I can do a manual keyboard
interrupt and get the expected bactrace and program exit.


from signal import pause
from socket import socket
from thread import start_new_thread, interrupt_main
from time import sleep

def go():
    print 'go'
    while f.readline():
        print 'line'
    print 'empty'
    print 'done'

s = socket()
s.connect(('localhost', 80))
f = s.makefile()
print 'connected'

start_new_thread(go, ())

pause()  # expecting to get KeyboardInterrupt exception here


...hangs here as if interrupt_main() does nothing.

Manual Control-C required to wake up from pause() and exit.

Traceback (most recent call last):
  File "", line 23, in ?
    pause()  # expecting to get KeyboardInterrupt exception here

Python 2.3.3 on RedHat 7x.

Wondering what's wrong?


Jerry Sievers   305 854-3001 (home)     WWW ECommerce Consultant
                305 321-1144 (mobile

More information about the Python-list mailing list