Can anyone explain how the interrupt_main() method works in Python?
I've got this piece of Python code :
import time, thread
def f():
time.sleep(5)
thread.interrupt_main()
def g():
thread.start_new_thread(f, ())
time.sleep(10)
print time.time()
try:
g()
except KeyboardInterrupt:
print time.time()
And when I try to run it, it gives me the following output :
1380542215.5
# ... 10 seconds break...
1380542225.51
However, if I interrupt the program manually (CTRL-C), the thread is interrupted correctly :
1380542357.58
^C1380542361.49
Why does the thread interruption only occur after 10 seconds (and not 5) in the first example?
I found an ancient thread n Python mailing list, but it explains nearly nothing.