mirror of
https://github.com/python/cpython.git
synced 2025-07-29 06:05:00 +00:00
- 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:
parent
e6bfe80b67
commit
a36f8fefb0
2 changed files with 12 additions and 4 deletions
|
@ -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:
|
||||||
|
@ -635,7 +635,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)
|
||||||
|
@ -671,6 +671,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
|
||||||
|
@ -842,7 +846,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:
|
||||||
|
@ -1112,7 +1116,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:
|
||||||
|
|
|
@ -71,6 +71,10 @@ Library
|
||||||
file name rather than a ZipInfo instance, so files are extracted with
|
file name rather than a ZipInfo instance, so files are extracted with
|
||||||
mode 0600 rather than 000 under Unix.
|
mode 0600 rather than 000 under Unix.
|
||||||
|
|
||||||
|
- 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.
|
||||||
|
|
||||||
Build
|
Build
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue