From 3c3d9a2f389625ac5379b2685e1c0a3ab6067f86 Mon Sep 17 00:00:00 2001 From: Tracker-Friendly Date: Fri, 29 Mar 2024 20:50:00 +0000 Subject: [PATCH] Fixed billions of async processes being created and waiting by adding a timeout --- main | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/main b/main index 27ad917..8dd282c 100644 --- a/main +++ b/main @@ -320,16 +320,25 @@ async def waitforedit(): secretKey = data["secretKey"] userCookie = get_session(secretKey) user = get_user(userCookie["id"]) + complete = true + start_time = time.time() while user["id"] not in messages or not messages[user["id"]]: await asyncio.sleep(0) + elapsed_time = time.time() - start_time + if elapsed_time >= 20: + break + complete = false message = messages[user["id"]].pop(0) del messages[user["id"]] - return { - "note": message - }, 200 + if complete == true: + return { + "note": message + }, 200 + else: + return 400 @app.route("/api/editnote", methods=("GET", "POST")) async def apieditnote():