Add writer drain

This commit is contained in:
Jahongir Qurbonov 2024-10-22 18:08:37 +05:00
parent c138e17f4a
commit 1d985c674a

View File

@ -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")