Message125815
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(). |
|
Date |
User |
Action |
Args |
2011-01-09 00:26:58 | neologix | set | recipients:
+ neologix, alanwilter |
2011-01-09 00:26:58 | neologix | set | messageid: <1294532818.19.0.599064185448.issue9504@psf.upfronthosting.co.za> |
2011-01-09 00:26:56 | neologix | link | issue9504 messages |
2011-01-09 00:26:55 | neologix | create | |
|