bring back resources counter
1 files changed, 28 insertions(+), 17 deletions(-)

M wormhole/server.py
M wormhole/server.py +28 -17
@@ 5,7 5,6 @@ import sys
 from time import time
 from authentication import get_ident, verify
 from handler import process_http, process_https, process_request
-
 from logger import Logger
 
 

          
@@ 20,12 19,15 @@ else:
 
     MAX_TASKS: int = int(0.9 * resource.getrlimit(resource.RLIMIT_NOFILE)[0])
 
+CURRENT_TASKS = 0
+
 
 async def process_wormhole(
     client_reader: asyncio.StreamReader,
     client_writer: asyncio.StreamWriter,
     auth: str | None,
 ) -> None:
+    global CURRENT_TASKS
     logger = Logger().get_logger()
     ident = get_ident(client_reader, client_writer)
 

          
@@ 62,23 64,32 @@ async def process_wormhole(
             return
         ident = user_ident
 
-    async with asyncio.TaskGroup() as tg:
-        if request_method == "CONNECT":
-            tg.create_task(
-                process_https(client_reader, client_writer, request_method, uri, ident)
-            )
-        else:
-            tg.create_task(
-                process_http(
-                    client_writer,
-                    request_method,
-                    uri,
-                    http_version,
-                    headers,
-                    payload,
-                    ident,
+    CURRENT_TASKS += 1
+    logger.debug(
+        f"[{ident['id']}][{ident['client']}]: {CURRENT_TASKS}/{MAX_TASKS} Tasks active"
+    )
+    try:
+        async with asyncio.TaskGroup() as tg:
+            if request_method == "CONNECT":
+                tg.create_task(
+                    process_https(
+                        client_reader, client_writer, request_method, uri, ident
+                    )
                 )
-            )
+            else:
+                tg.create_task(
+                    process_http(
+                        client_writer,
+                        request_method,
+                        uri,
+                        http_version,
+                        headers,
+                        payload,
+                        ident,
+                    )
+                )
+    finally:
+        CURRENT_TASKS -= 1
 
 
 async def accept_client(