subprocess: enhance ResourceWarning message

* Add the process identifier to the warning message
* Add also a comment to explain the issue
This commit is contained in:
Victor Stinner 2016-06-14 16:42:59 +02:00
parent d017176209
commit c206f1eb1c
1 changed files with 4 additions and 3 deletions

View File

@ -993,7 +993,6 @@ class Popen(object):
raise raise
def _translate_newlines(self, data, encoding): def _translate_newlines(self, data, encoding):
data = data.decode(encoding) data = data.decode(encoding)
return data.replace("\r\n", "\n").replace("\r", "\n") return data.replace("\r\n", "\n").replace("\r", "\n")
@ -1018,8 +1017,10 @@ 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
if self.returncode is None: if self.returncode is None:
warnings.warn("running subprocess %r" % self, ResourceWarning, # Not reading subprocess exit status creates a zombi process which
source=self) # is only destroyed at the parent python process exit
warnings.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. # In case the child hasn't been waited on, check if it's done.
self._internal_poll(_deadstate=_maxsize) self._internal_poll(_deadstate=_maxsize)
if self.returncode is None and _active is not None: if self.returncode is None and _active is not None: