This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author eryksun
Recipients eryksun, paul.moore, rocco.matano, steve.dower, tim.golden, zach.ware
Date 2015-09-15.07:24:41
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1442301881.82.0.173957676531.issue25118@psf.upfronthosting.co.za>
In-reply-to
Content
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).
History
Date User Action Args
2015-09-15 07:24:41eryksunsetrecipients: + eryksun, paul.moore, tim.golden, zach.ware, steve.dower, rocco.matano
2015-09-15 07:24:41eryksunsetmessageid: <1442301881.82.0.173957676531.issue25118@psf.upfronthosting.co.za>
2015-09-15 07:24:41eryksunlinkissue25118 messages
2015-09-15 07:24:41eryksuncreate