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 <rep...@bugs.python.org>
<http://bugs.python.org/issue25118>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to