Merge heads
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 3108537..90658a1 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -645,6 +645,8 @@
class Popen(object):
+ _child_created = False # Set here since __del__ checks it
+
def __init__(self, args, bufsize=0, executable=None,
stdin=None, stdout=None, stderr=None,
preexec_fn=None, close_fds=False, shell=False,
@@ -653,7 +655,6 @@
"""Create new Popen instance."""
_cleanup()
- self._child_created = False
if not isinstance(bufsize, (int, long)):
raise TypeError("bufsize must be an integer")
@@ -750,11 +751,11 @@
return data
- def __del__(self, _maxint=sys.maxint, _active=_active):
+ def __del__(self, _maxint=sys.maxint):
# If __init__ hasn't had a chance to execute (e.g. if it
# was passed an undeclared keyword argument), we don't
# have a _child_created attribute at all.
- if not getattr(self, '_child_created', False):
+ if not self._child_created:
# 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.
@@ -1330,7 +1331,7 @@
_WTERMSIG=os.WTERMSIG, _WIFEXITED=os.WIFEXITED,
_WEXITSTATUS=os.WEXITSTATUS):
# This method is called (indirectly) by __del__, so it cannot
- # refer to anything outside of its local scope."""
+ # refer to anything outside of its local scope.
if _WIFSIGNALED(sts):
self.returncode = -_WTERMSIG(sts)
elif _WIFEXITED(sts):