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:
parent
a96ed63d36
commit
8d0230b0f2
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue