summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsuchmememanyskill <38142618+suchmememanyskill@users.noreply.github.com>2024-07-07 20:33:45 +0200
committersuchmememanyskill <38142618+suchmememanyskill@users.noreply.github.com>2024-07-07 20:33:45 +0200
commit704325623238beb0137377d12388d09251737e74 (patch)
tree9ca996c3c222af8aa1c5750d7b23b52f19c6d76e
parentc1f01dcb21bb34a238f1cb9e82cd2388aa26d206 (diff)
downloaddecky-loader-704325623238beb0137377d12388d09251737e74.tar.gz
decky-loader-704325623238beb0137377d12388d09251737e74.zip
Add lock to internal socket fetch functionsims/fix-backend-socket-concurrent-use
-rw-r--r--backend/decky_loader/localplatform/localsocket.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/backend/decky_loader/localplatform/localsocket.py b/backend/decky_loader/localplatform/localsocket.py
index c0b4faa1..b25b275a 100644
--- a/backend/decky_loader/localplatform/localsocket.py
+++ b/backend/decky_loader/localplatform/localsocket.py
@@ -19,6 +19,7 @@ class UnixSocket:
self.reader = None
self.writer = None
self.server_writer = None
+ self.open_lock = asyncio.Lock()
async def setup_server(self):
try:
@@ -42,10 +43,11 @@ class UnixSocket:
return True
async def get_socket_connection(self):
- if not await self._open_socket_if_not_exists():
- return None, None
-
- return self.reader, self.writer
+ async with self.open_lock:
+ if not await self._open_socket_if_not_exists():
+ return None, None
+
+ return self.reader, self.writer
async def close_socket_connection(self):
if self.writer != None: