bpo-34638: Store a weak reference to stream reader to break strong references loop (GH-9201)

Store a weak reference to stream readerfor breaking strong references

It breaks the strong reference loop between reader and protocol and allows to detect and close the socket if the stream is deleted (garbage collected)
This commit is contained in:
Andrew Svetlov 2018-09-12 11:43:04 -07:00 committed by GitHub
parent aca819fb49
commit a5d1eb8d8b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 160 additions and 10 deletions

View file

@ -36,6 +36,11 @@ 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