waitfinish() assumes that if the forked child process exited with exitstatus == 0, that _child() ran to completion and wrote out the retval. This is not true if the function run in the child process hard exited with status 0, e.g. os._exit(0) (or even sys.exit(0)).
I added a new test for this and will submit a PR to fix the issue shortly.
waitfinish()
assumes that if the forked child process exited withexitstatus == 0
, that_child()
ran to completion and wrote out theretval
. This is not true if the function run in the child process hard exited with status 0, e.g.os._exit(0)
(or evensys.exit(0)
).I added a new test for this and will submit a PR to fix the issue shortly.