summaryrefslogtreecommitdiffstats
path: root/Lib/asyncio
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-07-17 11:12:03 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2014-07-17 11:12:03 (GMT)
commitd55b54d5c0e6f469145f394d18e39156baa2ca79 (patch)
tree8400fd9032c6f2e5506495ce6e1ae713484f181b /Lib/asyncio
parentcc996b57890a251cef83101d5cfcbc58179cba5f (diff)
downloadcpython-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.py12
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()