Message125815
| Author |
neologix |
| Recipients |
alanwilter, neologix |
| Date |
2011年01月09日.00:26:55 |
| SpamBayes Score |
5.4839675e-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: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 |
|