asyncio.subprocess: Fix a race condition in communicate()

Use self._loop instead of self._transport._loop, because transport._loop is set
to None at process exit.
This commit is contained in:
Victor Stinner 2014-02-20 10:12:59 +01:00
parent a96ed63d36
commit 8d0230b0f2
1 changed files with 1 additions and 2 deletions

View File

@ -146,7 +146,6 @@ class Process:
@tasks.coroutine
def communicate(self, input=None):
loop = self._transport._loop
if input:
stdin = self._feed_stdin(input)
else:
@ -160,7 +159,7 @@ class Process:
else:
stderr = self._noop()
stdin, stdout, stderr = yield from tasks.gather(stdin, stdout, stderr,
loop=loop)
loop=self._loop)
yield from self.wait()
return (stdout, stderr)