Commit b95caff5 authored by Martin v. Löwis's avatar Martin v. Löwis

Clarify cases when waitpid might not return self.pid.

parent 478c82d3
...@@ -94,6 +94,7 @@ class Popen3: ...@@ -94,6 +94,7 @@ class Popen3:
if self.sts < 0: if self.sts < 0:
try: try:
pid, sts = os.waitpid(self.pid, os.WNOHANG) pid, sts = os.waitpid(self.pid, os.WNOHANG)
# pid will be 0 if self.pid hasn't terminated
if pid == self.pid: if pid == self.pid:
self.sts = sts self.sts = sts
except os.error: except os.error:
...@@ -105,7 +106,9 @@ class Popen3: ...@@ -105,7 +106,9 @@ class Popen3:
"""Wait for and return the exit status of the child process.""" """Wait for and return the exit status of the child process."""
if self.sts < 0: if self.sts < 0:
pid, sts = os.waitpid(self.pid, 0) pid, sts = os.waitpid(self.pid, 0)
if pid == self.pid: # This used to be a test, but it is believed to be
# always true, so I changed it to an assertion - mvl
assert pid == self.pid
self.sts = sts self.sts = sts
return self.sts return self.sts
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment