When a previous call to poll() has already seen the process status,

wait() should not call waitpid() again.

Should be backported to 2.2.4.
This commit is contained in:
Guido van Rossum 2003-06-02 19:12:01 +00:00
parent bf68c78a6f
commit 3800ef7ae2
1 changed files with 5 additions and 4 deletions

View File

@ -83,10 +83,11 @@ class Popen3:
def wait(self):
"""Wait for and return the exit status of the child process."""
pid, sts = os.waitpid(self.pid, 0)
if pid == self.pid:
self.sts = sts
_active.remove(self)
if self.sts < 0:
pid, sts = os.waitpid(self.pid, 0)
if pid == self.pid:
self.sts = sts
_active.remove(self)
return self.sts