sbt <shibt...@gmail.com> added the comment: > Hmm, it seems to me that it should be done in _poll() instead. > Otherwise, recv() will not be interruptible, will it?
Or maybe WaitForMultipleObjects() should be changed to also wait on sigint_event if called by the main thread. > Also, after looking at this again, it seems sigint_event would be > better provided (at the C level) by the Python core, e.g. as > _PyOS_SigintEvent. The time module already uses a similar mechanism. > By setting the event in the sigint handler itself, rather than in an > auxiliary HandlerRoutine callback function, it should also ensure > that, when the event is set, the "tripped" bit in signalmodule.c > has been set, meaning we wouldn't need to Sleep() anymore. > (I also wonder why the event isn't auto-reset. Otherwise, there's a > race condition - which is probably harmless in most cases, but still.) If it is an auto-reset event then we must worry about a non-main thread stealing the event. Maybe _PyOS_SigintEvent() should return NULL if called by a non-main thread, and be documented with a loud usage warning. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12328> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com