Commit b4bc9b91 authored by Gregory P. Smith's avatar Gregory P. Smith

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