diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py index 0afc66a473..33fc303a6f 100644 --- a/Lib/asyncio/streams.py +++ b/Lib/asyncio/streams.py @@ -227,9 +227,6 @@ class StreamReaderProtocol(FlowControlMixin, protocols.Protocol): self._reject_connection = True self._stream_reader_wr = None - def _untrack_reader(self): - self._stream_reader_wr = None - @property def _stream_reader(self): if self._stream_reader_wr is None: @@ -345,9 +342,6 @@ class StreamWriter: return self._transport.can_write_eof() def close(self): - # a reader can be garbage collected - # after connection closing - self._protocol._untrack_reader() self._transport.close() def is_closing(self): diff --git a/Lib/asyncio/subprocess.py b/Lib/asyncio/subprocess.py index c86de3d087..90fc00de83 100644 --- a/Lib/asyncio/subprocess.py +++ b/Lib/asyncio/subprocess.py @@ -36,11 +36,6 @@ class SubprocessStreamProtocol(streams.FlowControlMixin, info.append(f'stderr={self.stderr!r}') return '<{}>'.format(' '.join(info)) - def _untrack_reader(self): - # StreamWriter.close() expects the protocol - # to have this method defined. - pass - def connection_made(self, transport): self._transport = transport diff --git a/Lib/test/test_asyncio/test_streams.py b/Lib/test/test_asyncio/test_streams.py index 0141df729c..740bb84c64 100644 --- a/Lib/test/test_asyncio/test_streams.py +++ b/Lib/test/test_asyncio/test_streams.py @@ -589,6 +589,7 @@ class StreamTests(test_utils.TestCase): client_writer.write(data) await client_writer.drain() client_writer.close() + await client_writer.wait_closed() def start(self): sock = socket.socket() @@ -628,6 +629,7 @@ class StreamTests(test_utils.TestCase): # read it back msgback = await reader.readline() writer.close() + await writer.wait_closed() return msgback messages = [] @@ -666,6 +668,7 @@ class StreamTests(test_utils.TestCase): client_writer.write(data) await client_writer.drain() client_writer.close() + await client_writer.wait_closed() def start(self): self.server = self.loop.run_until_complete( @@ -697,6 +700,7 @@ class StreamTests(test_utils.TestCase): # read it back msgback = await reader.readline() writer.close() + await writer.wait_closed() return msgback messages = []