Message250728
This bug is due to issue 23285, which improved support for EINTR handling. os_waitpid_impl was changed to use the following do-while loop:
do {
Py_BEGIN_ALLOW_THREADS
res = _cwait(&status, pid, options);
Py_END_ALLOW_THREADS
} while (res < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
if (res != 0)
return (!async_err) ? posix_error() : NULL;
The last test should be (res < 0) instead of (res != 0). That's why you're getting a no-error exception.
It seems to me this entire loop should be removed. The Windows C runtime doesn't set errno to EINTR. In the case of _cwait it doesn't even use an alertable wait (i.e. it can't be interrupted by a regular asynchronous procedure call). |
|
Date |
User |
Action |
Args |
2015-09-15 07:24:41 | eryksun | set | recipients:
+ eryksun, paul.moore, tim.golden, zach.ware, steve.dower, rocco.matano |
2015-09-15 07:24:41 | eryksun | set | messageid: <1442301881.82.0.173957676531.issue25118@psf.upfronthosting.co.za> |
2015-09-15 07:24:41 | eryksun | link | issue25118 messages |
2015-09-15 07:24:41 | eryksun | create | |
|