check for sem acquire

This commit is contained in:
Lucas Armand
2025-10-21 18:02:14 -07:00
parent 9a6ca5d412
commit b39193ae70
+3 -1
View File
@@ -136,6 +136,7 @@ class Backend:
return web.json_response(dict(error="invalid JSON"), status=422) return web.json_response(dict(error="invalid JSON"), status=422)
workload = payload.count_workload() workload = payload.count_workload()
request_metrics: RequestMetrics = RequestMetrics(request_idx=auth_data.request_idx, reqnum=auth_data.reqnum, workload=workload, status="Created") request_metrics: RequestMetrics = RequestMetrics(request_idx=auth_data.request_idx, reqnum=auth_data.reqnum, workload=workload, status="Created")
acquired = False
async def cancel_api_call_if_disconnected() -> web.Response: async def cancel_api_call_if_disconnected() -> web.Response:
await request.wait_for_disconnection() await request.wait_for_disconnection()
@@ -149,6 +150,7 @@ class Backend:
if self.allow_parallel_requests is False: if self.allow_parallel_requests is False:
log.debug(f"Waiting to aquire Sem for reqnum:{request_metrics.reqnum}") log.debug(f"Waiting to aquire Sem for reqnum:{request_metrics.reqnum}")
await self.sem.acquire() await self.sem.acquire()
acquired = True
log.debug( log.debug(
f"Sem acquired for reqnum:{request_metrics.reqnum}, starting request..." f"Sem acquired for reqnum:{request_metrics.reqnum}, starting request..."
) )
@@ -206,7 +208,7 @@ class Backend:
return web.Response(status=500) return web.Response(status=500)
finally: finally:
# Always release the semaphore if it was acquired # Always release the semaphore if it was acquired
if not self.allow_parallel_requests: if acquired:
self.sem.release() self.sem.release()
self.metrics._request_end(request_metrics) self.metrics._request_end(request_metrics)