diff --git a/client/src/telethon/_impl/client/client/auth.py b/client/src/telethon/_impl/client/client/auth.py index 0a33d35c..220a0081 100644 --- a/client/src/telethon/_impl/client/client/auth.py +++ b/client/src/telethon/_impl/client/client/auth.py @@ -61,7 +61,7 @@ async def handle_migrate(client: Client, dc_id: Optional[int]) -> None: client._config, client._session.dcs, DataCenter(id=dc_id) ) - async with client._sender.lock: + async with client._sender._lock: old_sender = client._sender client._sender = sender await old_sender.disconnect() diff --git a/client/src/telethon/_impl/client/client/net.py b/client/src/telethon/_impl/client/client/net.py index d7f6e31b..7db6c3ea 100644 --- a/client/src/telethon/_impl/client/client/net.py +++ b/client/src/telethon/_impl/client/client/net.py @@ -276,10 +276,14 @@ async def step_sender(client: Client) -> None: process_socket_updates(client, updates) +async def step(self: Client) -> None: + if self._sender: + await step_sender(self) + + async def run_until_disconnected(self: Client) -> None: while self.connected: - if self._sender: - await step_sender(self) + await step(self) def connected(client: Client) -> bool: diff --git a/client/src/telethon/_impl/mtsender/sender.py b/client/src/telethon/_impl/mtsender/sender.py index 5bbb9e4c..afd8cfe5 100644 --- a/client/src/telethon/_impl/mtsender/sender.py +++ b/client/src/telethon/_impl/mtsender/sender.py @@ -162,8 +162,8 @@ class Request(Generic[Return]): class Sender: dc_id: int addr: str - lock: Lock _logger: logging.Logger + _lock: Lock _reader: AsyncReader _writer: AsyncWriter _transport: Transport @@ -192,8 +192,8 @@ class Sender: return cls( dc_id=dc_id, addr=addr, - lock=Lock(), _logger=base_logger.getChild("mtsender"), + _lock=Lock(), _reader=reader, _writer=writer, _transport=transport, @@ -235,7 +235,7 @@ class Sender: return rx.result() async def step(self) -> list[Updates]: - async with self.lock: + async with self._lock: return await self._step() async def _step(self) -> list[Updates]: