(backport r65459 from trunk)

- Issue #1857: subprocess.Popen.poll gained an additional _deadstate keyword
  argument in python 2.5, this broke code that subclassed Popen to include its
  own poll method.  Fixed my moving _deadstate to an _internal_poll method.
This commit is contained in:
Gregory P. Smith 2008-08-04 00:15:54 +00:00
parent c7af7f36a6
commit b4bc9b9192
2 changed files with 12 additions and 4 deletions

View File

@ -421,7 +421,7 @@ _active = []
def _cleanup():
for inst in _active[:]:
if inst.poll(_deadstate=sys.maxint) >= 0:
if inst._internal_poll(_deadstate=sys.maxint) >= 0:
try:
_active.remove(inst)
except ValueError:
@ -634,7 +634,7 @@ class Popen(object):
# We didn't get to successfully create a child process.
return
# In case the child hasn't been waited on, check if it's done.
self.poll(_deadstate=sys.maxint)
self._internal_poll(_deadstate=sys.maxint)
if self.returncode is None and _active is not None:
# Child is still running, keep us alive until we can wait on it.
_active.append(self)
@ -670,6 +670,10 @@ class Popen(object):
return self._communicate(input)
def poll(self):
return self._internal_poll()
if mswindows:
#
# Windows methods
@ -843,7 +847,7 @@ class Popen(object):
errwrite.Close()
def poll(self, _deadstate=None):
def _internal_poll(self, _deadstate=None):
"""Check if child process has terminated. Returns returncode
attribute."""
if self.returncode is None:
@ -1103,7 +1107,7 @@ class Popen(object):
raise RuntimeError("Unknown child exit status!")
def poll(self, _deadstate=None):
def _internal_poll(self, _deadstate=None):
"""Check if child process has terminated. Returns returncode
attribute."""
if self.returncode is None:

View File

@ -126,6 +126,10 @@ Library
in the common case when the data is returned from the underlying socket
in increments much smaller than bignumber.
- Issue #1857: subprocess.Popen.poll gained an additional _deadstate keyword
argument in python 2.5, this broke code that subclassed Popen to include its
own poll method. Fixed my moving _deadstate to an _internal_poll method.
Extension Modules
-----------------