This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author neologix
Recipients alanwilter, neologix
Date 2011-01-09.00:26:55
SpamBayes Score 5.48397e-05
Marked as misclassified No
Message-id <1294532818.19.0.599064185448.issue9504@psf.upfronthosting.co.za>
In-reply-to
Content
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().
History
Date User Action Args
2011-01-09 00:26:58neologixsetrecipients: + neologix, alanwilter
2011-01-09 00:26:58neologixsetmessageid: <1294532818.19.0.599064185448.issue9504@psf.upfronthosting.co.za>
2011-01-09 00:26:56neologixlinkissue9504 messages
2011-01-09 00:26:55neologixcreate