From bc7b8d4d75462c0f9fb2e42dac17d2e3c709d67b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Sgha=C3=AFer?= Date: Mon, 3 Apr 2017 17:54:06 +0200 Subject: [PATCH] Break circular references when closing SSLTransport objects --- Lib/asyncio/sslproto.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Lib/asyncio/sslproto.py b/Lib/asyncio/sslproto.py index ab7ff0bf93d076..0b6434458ebdb9 100644 --- a/Lib/asyncio/sslproto.py +++ b/Lib/asyncio/sslproto.py @@ -683,12 +683,14 @@ def _fatal_error(self, exc, message='Fatal error on transport'): self._transport._force_close(exc) def _finalize(self): + self._sslpipe = None + if self._transport is not None: self._transport.close() def _abort(self): - if self._transport is not None: - try: + try: + if self._transport is not None: self._transport.abort() - finally: - self._finalize() + finally: + self._finalize()