Charles-Francois Natali <neolo...@free.fr> added the comment:

It's due to the way the python interpreter handles signals: when the signal is 
received, python runs a stub signal handler that just sets a flag indicating 
that the signal has been received: the actual handler is executed later, 
synchronously, mainly from the main evaluation loop.
The problem here is that since the main process is performing a read until EOF 
is reached (i.e. until the subprocess exits), the C code loops around the 
read(2) call without giving a chance for the handler to run.
A patch for is similar issue has been applied, see 
http://bugs.python.org/issue9617#

But it only fixed writes, not reads.
I think _bufferedreader_read_all and _bufferedreader_read_generic should be 
fixed too to call PyErr_CheckSignals().

----------
nosy: +neologix

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue9504>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to