From 984e989a4b032dc4af6f3da74dd83310bb78f033 Mon Sep 17 00:00:00 2001 From: Dan <14043624+delivrance@users.noreply.github.com> Date: Sat, 30 Jun 2018 11:03:55 +0200 Subject: [PATCH] Lock TCP send() --- pyrogram/connection/transport/tcp/tcp.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pyrogram/connection/transport/tcp/tcp.py b/pyrogram/connection/transport/tcp/tcp.py index f541153e..7ca479a5 100644 --- a/pyrogram/connection/transport/tcp/tcp.py +++ b/pyrogram/connection/transport/tcp/tcp.py @@ -39,6 +39,8 @@ class TCP: def __init__(self, proxy: dict): self.proxy = proxy + self.lock = asyncio.Lock() + self.socket = socks.socksocket() self.reader = None # type: asyncio.StreamReader self.writer = None # type: asyncio.StreamWriter @@ -76,8 +78,9 @@ class TCP: self.socket.close() async def send(self, data: bytes): - self.writer.write(data) - await self.writer.drain() + with await self.lock: + self.writer.write(data) + await self.writer.drain() async def recv(self, length: int = 0): data = b""