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 bbmmy
Recipients bbmmy, docs@python
Date 2019-11-14.21:52:20
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
For versions 2.7 through 3.9 of, os.WNOHANG is described as returning (0, 0) when no child process status is immediately available.

However, both os.wait3() and os.wait4() return 3-element tuples and are described as being similar to os.waitpid().  This, combined with the os.WNOHANG documentation being somewhat open to interpretation, makes it very easy to conclude (incorrectly) that wait3(WNOHANG) and wait4(WNOHANG) would return (0, 0) when no child process status is immediately available.  In fact, they would return a 3-element tuple with the first 2 elements being 0.

I suggest rephrasing the os.WNOHANG documentation to the following (or something similar):

"The option for waitpid() to return immediately if no child process status is available immediately, in which case the function returns (0, 0).  Correspondingly, wait3() and wait4() would return 3-element tuples with the first 2 elements being 0 and the last being a default-constructed resource usage information object."

Unfortunately that last part about the default-constructed resource usage information object is only true after this recent bug fix:

So I'll leave it to y'all to decide how to update the documentation since my proposed phrasing is dependent on that bug fix.
Date User Action Args
2019-11-14 21:52:21bbmmysetrecipients: + bbmmy, docs@python
2019-11-14 21:52:21bbmmysetmessageid: <>
2019-11-14 21:52:21bbmmylinkissue38802 messages
2019-11-14 21:52:20bbmmycreate