From dd954b8fbd1957844c8e241183764c3ced7698a9 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Thu, 10 May 2018 09:44:25 +0200 Subject: [PATCH] Avoid receive busy wait when two threads receive items --- telethon/network/mtproto_sender.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/telethon/network/mtproto_sender.py b/telethon/network/mtproto_sender.py index 04a2020e..3c0a4ce8 100644 --- a/telethon/network/mtproto_sender.py +++ b/telethon/network/mtproto_sender.py @@ -152,7 +152,12 @@ class MtProtoSender: Update and Updates objects. """ if self._recv_lock.locked(): - return + with self._recv_lock: + # Don't busy wait, acquire it but return because there's + # already a receive running and we don't want another one. + # It would lock until Telegram sent another update even if + # the current receive already received the expected response. + return try: with self._recv_lock: