summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2010-04-25 23:11:51 (GMT)
committerBrett Cannon <bcannon@gmail.com>2010-04-25 23:11:51 (GMT)
commit3d6137962c42e34e6be58166a5ea972c8cfb1e55 (patch)
tree9607e0477ccff47db3e3b83b6642a70c26669f04
parent1994969c15a055d2f9479d3bc10fb6304b2979ed (diff)
downloadcpython-3d6137962c42e34e6be58166a5ea972c8cfb1e55.zip
cpython-3d6137962c42e34e6be58166a5ea972c8cfb1e55.tar.gz
cpython-3d6137962c42e34e6be58166a5ea972c8cfb1e55.tar.bz2
Revert an accidental commit from r80492.
-rw-r--r--Lib/subprocess.py53
1 files changed, 17 insertions, 36 deletions
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 3cd2357..8c687c9 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -413,6 +413,7 @@ class CalledProcessError(Exception):
if mswindows:
+ from _subprocess import CREATE_NEW_CONSOLE, CREATE_NEW_PROCESS_GROUP
import threading
import msvcrt
import _subprocess
@@ -441,7 +442,6 @@ __all__ = ["Popen", "PIPE", "STDOUT", "call", "check_call",
"check_output", "CalledProcessError"]
if mswindows:
- from _subprocess import CREATE_NEW_CONSOLE, CREATE_NEW_PROCESS_GROUP
__all__.extend(["CREATE_NEW_CONSOLE", "CREATE_NEW_PROCESS_GROUP"])
try:
MAXFD = os.sysconf("SC_OPEN_MAX")
@@ -699,12 +699,12 @@ class Popen(object):
return data
- def __del__(self, _maxint=sys.maxint):
+ def __del__(self, sys=sys):
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.
- self._internal_poll(_deadstate=_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)
@@ -907,20 +907,13 @@ class Popen(object):
errwrite.Close()
- def _internal_poll(self, _deadstate=None,
- _WaitForSingleObject=WaitForSingleObject,
- _WAIT_OBJECT_0=WAIT_OBJECT_0,
- _GetExitCodeProcess=GetExitCodeProcess):
+ def _internal_poll(self, _deadstate=None):
"""Check if child process has terminated. Returns returncode
- attribute.
-
- This method is called by __del__, so it can only refer to objects
- in its local scope.
-
- """
+ attribute."""
if self.returncode is None:
- if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0:
- self.returncode = _GetExitCodeProcess(self._handle)
+ if(_subprocess.WaitForSingleObject(self._handle, 0) ==
+ _subprocess.WAIT_OBJECT_0):
+ self.returncode = _subprocess.GetExitCodeProcess(self._handle)
return self.returncode
@@ -1201,37 +1194,25 @@ class Popen(object):
raise child_exception
- def _handle_exitstatus(self, sts, _WIFSIGNALED=os.WIFSIGNALED,
- _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."""
- if _WIFSIGNALED(sts):
- self.returncode = -_WTERMSIG(sts)
- elif _WIFEXITED(sts):
- self.returncode = _WEXITSTATUS(sts)
+ def _handle_exitstatus(self, sts):
+ if os.WIFSIGNALED(sts):
+ self.returncode = -os.WTERMSIG(sts)
+ elif os.WIFEXITED(sts):
+ self.returncode = os.WEXITSTATUS(sts)
else:
# Should never happen
raise RuntimeError("Unknown child exit status!")
- def _internal_poll(self, _deadstate=None, _waitpid=os.waitpid,
- _WNOHANG=os.WNOHANG, _os_error=os.error):
+ def _internal_poll(self, _deadstate=None):
"""Check if child process has terminated. Returns returncode
- attribute.
-
- This method is called by __del__, so it cannot reference anything
- outside of the local scope (nor can any methods it calls).
-
- """
+ attribute."""
if self.returncode is None:
try:
- pid, sts = _waitpid(self.pid, _WNOHANG)
+ pid, sts = os.waitpid(self.pid, os.WNOHANG)
if pid == self.pid:
self._handle_exitstatus(sts)
- except _os_error:
+ except os.error:
if _deadstate is not None:
self.returncode = _deadstate
return self.returncode