diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-01-06 09:44:44 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2017-01-06 09:44:44 (GMT) |
commit | 9505b03bb0d3c5828115fec9306cb976c43f04d9 (patch) | |
tree | 0f296fc0749f1aceb986be2181b75b2d7854914f | |
parent | 94d1bfa2efef23a181ca2aec8550fdb7f24d8a90 (diff) | |
download | cpython-9505b03bb0d3c5828115fec9306cb976c43f04d9.zip cpython-9505b03bb0d3c5828115fec9306cb976c43f04d9.tar.gz cpython-9505b03bb0d3c5828115fec9306cb976c43f04d9.tar.bz2 |
Fix subprocess.Popen.__del__() fox Python shutdown
Issue #29174, #26741: subprocess.Popen.__del__() now keeps a strong reference
to warnings.warn() function.
-rw-r--r-- | Lib/subprocess.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 0b880f6..13b9d44 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -750,15 +750,15 @@ class Popen(object): # Wait for the process to terminate, to avoid zombies. self.wait() - def __del__(self, _maxsize=sys.maxsize): + def __del__(self, _maxsize=sys.maxsize, _warn=warnings.warn): if not self._child_created: # We didn't get to successfully create a child process. return if self.returncode is None: # Not reading subprocess exit status creates a zombi process which # is only destroyed at the parent python process exit - warnings.warn("subprocess %s is still running" % self.pid, - ResourceWarning, source=self) + _warn("subprocess %s is still running" % self.pid, + ResourceWarning, source=self) # In case the child hasn't been waited on, check if it's done. self._internal_poll(_deadstate=_maxsize) if self.returncode is None and _active is not None: |