[Python-checkins] cpython (3.5): asyncio: fix ResourceWarning related to subprocesses

victor.stinner python-checkins at python.org
Fri May 20 07:09:03 EDT 2016


https://hg.python.org/cpython/rev/72946937536e
changeset:   101447:72946937536e
branch:      3.5
parent:      101440:97198545e6c3
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Fri May 20 13:05:48 2016 +0200
summary:
  asyncio: fix ResourceWarning related to subprocesses

Issue #26741: asyncio: BaseSubprocessTransport._process_exited() now copies the
return code from the child watched to the returncode attribute of the Popen
object. On Python 3.6, it is required to avoid a ResourceWarning.

files:
  Lib/asyncio/base_subprocess.py |  4 ++++
  1 files changed, 4 insertions(+), 0 deletions(-)


diff --git a/Lib/asyncio/base_subprocess.py b/Lib/asyncio/base_subprocess.py
--- a/Lib/asyncio/base_subprocess.py
+++ b/Lib/asyncio/base_subprocess.py
@@ -210,6 +210,10 @@
             logger.info('%r exited with return code %r',
                         self, returncode)
         self._returncode = returncode
+        if self._proc.returncode is None:
+            # asyncio uses a child watcher: copy the status into the Popen
+            # object. On Python 3.6, it is required to avoid a ResourceWarning.
+            self._proc.returncode = returncode
         self._call(self._protocol.process_exited)
         self._try_finish()
 

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list