From 1829113ae5ada7d75429749eb3983ed8e122959d Mon Sep 17 00:00:00 2001 From: SantaSpeen Date: Wed, 19 Jul 2023 21:22:29 +0300 Subject: [PATCH] Add upload use_queue --- src/core/Client.py | 8 +++++++- src/core/core.py | 2 ++ src/core/core.pyi | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/core/Client.py b/src/core/Client.py index 89ad424..14a1f79 100644 --- a/src/core/Client.py +++ b/src/core/Client.py @@ -290,7 +290,11 @@ class Client: if t > 50: await self.kick("Missing download socket") return - speed = 10 + if config.Options['use_queue']: + while self.__Core.lock_upload: + await asyncio.sleep(.2) + self.__Core.lock_upload = True + speed = config.Options["speed_limit"] if speed: speed = speed / 2 half_size = math.floor(size / 2) @@ -301,6 +305,8 @@ class Client: ] sl0, sl1 = await asyncio.gather(*uploads) tr = time.monotonic() - t + if self.__Core.lock_upload: + self.__Core.lock_upload = False # TODO: i18n msg = f"Mod sent: Size {round(size / MB, 3)}mb Speed {int(size / tr / MB)}Mb/s ({int(tr)}s)" if speed: diff --git a/src/core/core.py b/src/core/core.py index c614e33..a98bd6b 100644 --- a/src/core/core.py +++ b/src/core/core.py @@ -41,6 +41,8 @@ class Core: self.web_pool = webapp.data_pool self.web_stop = None + self.lock_upload = False + self.client_major_version = "2.0" self.BeamMP_version = "3.2.0" diff --git a/src/core/core.pyi b/src/core/core.pyi index bcc1a68..60d1d61 100644 --- a/src/core/core.pyi +++ b/src/core/core.pyi @@ -32,6 +32,7 @@ class Core: self.udp = UDPServer self.web_thread: Thread = None self.web_stop: Callable = lambda: None + self.lock_upload = False self.client_major_version = "2.0" self.BeamMP_version = "3.2.0" def get_client(self, cid=None, nick=None) -> Client | None: ...