From 1d985c674a1e85ca23278e60b26ea552ca5fb390 Mon Sep 17 00:00:00 2001 From: Jahongir Qurbonov Date: Tue, 22 Oct 2024 18:08:37 +0500 Subject: [PATCH] Add writer drain --- client/src/telethon/_impl/mtsender/sender.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/src/telethon/_impl/mtsender/sender.py b/client/src/telethon/_impl/mtsender/sender.py index b8d3ca8a..fbc42a32 100644 --- a/client/src/telethon/_impl/mtsender/sender.py +++ b/client/src/telethon/_impl/mtsender/sender.py @@ -240,7 +240,7 @@ class Sender: async def step(self) -> None: if not self._writing: self._writing = True - self._try_fill_write() + await self._try_fill_write() self._writing = False if not self._reading: @@ -265,7 +265,7 @@ class Sender: else: self._on_net_read(recv_data) - def _try_fill_write(self) -> None: + async def _try_fill_write(self) -> None: for request in self._requests: if isinstance(request.state, NotSerialized): if (msg_id := self._mtp.push(request.body)) is not None: @@ -282,6 +282,8 @@ class Sender: if isinstance(request.state, Serialized): request.state = Sent(request.state.msg_id, container_msg_id) + await self._writer.drain() + def _on_net_read(self, read_buffer: bytes) -> None: if not read_buffer: raise ConnectionResetError("read 0 bytes")