From a688c8a4cec0cc999fd4890638fbe40712f6b6bd Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Sat, 4 Aug 2018 15:05:22 +0200 Subject: [PATCH] Fix exception ignored warnings and invalid state #935 --- telethon/extensions/tcpclient.py | 9 ++++++++- telethon/network/mtprotosender.py | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/telethon/extensions/tcpclient.py b/telethon/extensions/tcpclient.py index f24dec40..1501d295 100644 --- a/telethon/extensions/tcpclient.py +++ b/telethon/extensions/tcpclient.py @@ -151,7 +151,14 @@ class TcpClient: loop=self._loop ) for r in running: - r.cancel() + if not r.cancelled(): + if r.done(): + # Retrieve exception to avoid "not retrieved" errors + r.exception() + + # Cancel the future despite its state + r.cancel() + if not self.is_connected: raise self.SocketClosed() if not done: diff --git a/telethon/network/mtprotosender.py b/telethon/network/mtprotosender.py index cf19ecb4..315ecf12 100644 --- a/telethon/network/mtprotosender.py +++ b/telethon/network/mtprotosender.py @@ -167,7 +167,7 @@ class MTProtoSender: self._recv_loop_handle.cancel() __log__.info('Disconnection from {} complete!'.format(self._ip)) - if self._disconnected: + if self._disconnected and not self._disconnected.done(): if error: self._disconnected.set_exception(error) else: