Eryk Sun added the comment:
Windows doesn't implement POSIX signals in the kernel, so
_thread.interrupt_main (i.e. PyErr_SetInterrupt) can be useful as an
abstraction.
Currently PyErr_SetInterrupt (Modules/signalmodule.c) doesn't set our SIGINT
event in Windows. It was suggested in issue 2
New submission from Gregory P. Smith :
In Python 2.7 our threading implementation was so poor that a thread join
ultimately called our lock wait implementation that busy looped polling and
sleeping to check for a lock acquisition success. calling
thread.interrupt_main() which is just PyErr_S