Davin Potts added the comment: The man pages for waitpid on OpenBSD 5.x do not suggest any meaningful value will be returned in status when WNOHANG is requested and no child processes have anything to report.
The following session attempts to exercise os.waitpid using Python 2.7.9 on an OpenBSD 5.3 i386 system: >>> import os >>> os.spawnl(os.P_NOWAIT, '/bin/sleep', 'sleep', '10') 19491 >>> os.waitpid(-1, os.WNOHANG) (0, 0) >>> os.waitpid(-1, os.WNOHANG) # wait a few seconds, try again (0, 0) >>> os.waitpid(-1, os.WNOHANG) # waited long enough for sleep to exit (19491, 0) >>> os.waitpid(-1, os.WNOHANG) # at this point, no children remain Traceback (most recent call last): File "<stdin>", line 1, in <module> OSError: [Errno 10] No child processes Can you provide any further information, like: * OpenBSD docs that explain that we should expect non-zero values for status coming from waitpid? * Example Python code to provoke the behavior originally described? * Other suggestion of why OpenBSD's waitpid, which itself depends upon wait4, when called (the way Python calls it) with an already initialized status=0 and WNOHANG should return a modified value for status when the child had nothing to report? ---------- nosy: +davin status: open -> pending _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue21791> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com