eryksun added the comment:
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).
----------
components: +Windows
nosy: +eryksun, paul.moore, steve.dower, tim.golden, zach.ware
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue25118>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com