Remove sender lock

This commit is contained in:
Jahongir Qurbonov 2024-10-22 18:20:46 +05:00
parent 676e9d9ef3
commit f3c7ba32d3
2 changed files with 5 additions and 7 deletions

View File

@ -61,10 +61,9 @@ async def handle_migrate(client: Client, dc_id: Optional[int]) -> None:
client._config, client._session.dcs, DataCenter(id=dc_id) client._config, client._session.dcs, DataCenter(id=dc_id)
) )
async with client._sender.lock: old_sender = client._sender
old_sender = client._sender client._sender = sender
client._sender = sender await old_sender.disconnect()
await old_sender.disconnect()
async def bot_sign_in(self: Client, token: str) -> User: async def bot_sign_in(self: Client, token: str) -> User:

View File

@ -3,7 +3,7 @@ import logging
import struct import struct
import time import time
from abc import ABC from abc import ABC
from asyncio import Event, Future, Lock from asyncio import Event, Future
from collections.abc import Iterator from collections.abc import Iterator
from dataclasses import dataclass from dataclasses import dataclass
from typing import Generic, Optional, Protocol, Type, TypeVar from typing import Generic, Optional, Protocol, Type, TypeVar
@ -162,7 +162,6 @@ class Request(Generic[Return]):
class Sender: class Sender:
dc_id: int dc_id: int
addr: str addr: str
lock: Lock
_logger: logging.Logger _logger: logging.Logger
_reader: AsyncReader _reader: AsyncReader
_writer: AsyncWriter _writer: AsyncWriter
@ -193,7 +192,6 @@ class Sender:
return cls( return cls(
dc_id=dc_id, dc_id=dc_id,
addr=addr, addr=addr,
lock=Lock(),
_logger=base_logger.getChild("mtsender"), _logger=base_logger.getChild("mtsender"),
_reading=False, _reading=False,
_writing=False, _writing=False,
@ -211,6 +209,7 @@ class Sender:
async def disconnect(self) -> None: async def disconnect(self) -> None:
self._writer.close() self._writer.close()
await self._writer.wait_closed() await self._writer.wait_closed()
self._response_event.set()
def enqueue(self, request: RemoteCall[Return]) -> Future[bytes]: def enqueue(self, request: RemoteCall[Return]) -> Future[bytes]:
rx = self._enqueue_body(bytes(request)) rx = self._enqueue_body(bytes(request))