diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2014-07-17 11:12:03 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2014-07-17 11:12:03 (GMT) |
commit | d55b54d5c0e6f469145f394d18e39156baa2ca79 (patch) | |
tree | 8400fd9032c6f2e5506495ce6e1ae713484f181b /Lib/asyncio | |
parent | cc996b57890a251cef83101d5cfcbc58179cba5f (diff) | |
download | cpython-d55b54d5c0e6f469145f394d18e39156baa2ca79.zip cpython-d55b54d5c0e6f469145f394d18e39156baa2ca79.tar.gz cpython-d55b54d5c0e6f469145f394d18e39156baa2ca79.tar.bz2 |
asyncio, tulip issue 190: Process.communicate() now ignores
ConnectionResetError too
Diffstat (limited to 'Lib/asyncio')
-rw-r--r-- | Lib/asyncio/subprocess.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Lib/asyncio/subprocess.py b/Lib/asyncio/subprocess.py index 23d6b4d..e4c1499 100644 --- a/Lib/asyncio/subprocess.py +++ b/Lib/asyncio/subprocess.py @@ -139,17 +139,19 @@ class Process: @coroutine def _feed_stdin(self, input): + debug = self._loop.get_debug() self.stdin.write(input) - if self._loop.get_debug(): + if debug: logger.debug('%r communicate: feed stdin (%s bytes)', self, len(input)) try: yield from self.stdin.drain() - except BrokenPipeError: - # ignore BrokenPipeError - pass + except (BrokenPipeError, ConnectionResetError) as exc: + # communicate() ignores BrokenPipeError and ConnectionResetError + if debug: + logger.debug('%r communicate: stdin got %r', self, exc) - if self._loop.get_debug(): + if debug: logger.debug('%r communicate: close stdin', self) self.stdin.close() |