From f3c7ba32d39bdaa4c09c0826bdb9f1a11578db57 Mon Sep 17 00:00:00 2001 From: Jahongir Qurbonov Date: Tue, 22 Oct 2024 18:20:46 +0500 Subject: [PATCH] Remove sender lock --- client/src/telethon/_impl/client/client/auth.py | 7 +++---- client/src/telethon/_impl/mtsender/sender.py | 5 ++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/client/src/telethon/_impl/client/client/auth.py b/client/src/telethon/_impl/client/client/auth.py index 0a33d35c..eb5bc2ec 100644 --- a/client/src/telethon/_impl/client/client/auth.py +++ b/client/src/telethon/_impl/client/client/auth.py @@ -61,10 +61,9 @@ 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: - old_sender = client._sender - client._sender = sender - await old_sender.disconnect() + old_sender = client._sender + client._sender = sender + await old_sender.disconnect() async def bot_sign_in(self: Client, token: str) -> User: diff --git a/client/src/telethon/_impl/mtsender/sender.py b/client/src/telethon/_impl/mtsender/sender.py index 9b178679..4f6bde47 100644 --- a/client/src/telethon/_impl/mtsender/sender.py +++ b/client/src/telethon/_impl/mtsender/sender.py @@ -3,7 +3,7 @@ import logging import struct import time from abc import ABC -from asyncio import Event, Future, Lock +from asyncio import Event, Future from collections.abc import Iterator from dataclasses import dataclass from typing import Generic, Optional, Protocol, Type, TypeVar @@ -162,7 +162,6 @@ class Request(Generic[Return]): class Sender: dc_id: int addr: str - lock: Lock _logger: logging.Logger _reader: AsyncReader _writer: AsyncWriter @@ -193,7 +192,6 @@ class Sender: return cls( dc_id=dc_id, addr=addr, - lock=Lock(), _logger=base_logger.getChild("mtsender"), _reading=False, _writing=False, @@ -211,6 +209,7 @@ class Sender: async def disconnect(self) -> None: self._writer.close() await self._writer.wait_closed() + self._response_event.set() def enqueue(self, request: RemoteCall[Return]) -> Future[bytes]: rx = self._enqueue_body(bytes(request))