From: Yury Selivanov Date: Fri, 13 May 2016 19:58:00 +0000 (-0400) Subject: asyncio: Break reference cycle in StreamReaderProtocol.connection_lost X-Git-Tag: v3.6.0a1~29^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=32dae3d50ff8f3ab5cbb36df476844ed41deb103;p=thirdparty%2FPython%2Fcpython.git asyncio: Break reference cycle in StreamReaderProtocol.connection_lost --- diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py index 0008d514508a..b7b0485aa0bf 100644 --- a/Lib/asyncio/streams.py +++ b/Lib/asyncio/streams.py @@ -242,11 +242,14 @@ class StreamReaderProtocol(FlowControlMixin, protocols.Protocol): self._loop.create_task(res) def connection_lost(self, exc): - if exc is None: - self._stream_reader.feed_eof() - else: - self._stream_reader.set_exception(exc) + if self._stream_reader is not None: + if exc is None: + self._stream_reader.feed_eof() + else: + self._stream_reader.set_exception(exc) super().connection_lost(exc) + self._stream_reader = None + self._stream_writer = None def data_received(self, data): self._stream_reader.feed_data(data)