diff --git a/compute/worker/src/server.ts b/compute/worker/src/server.ts index 68a295f..ad9b92d 100644 --- a/compute/worker/src/server.ts +++ b/compute/worker/src/server.ts @@ -1167,12 +1167,6 @@ async function main(): Promise { workerLabel: string; }): Promise { while (!stopping) { - await jobGate.acquire(); - if (stopping) { - jobGate.release(); - return; - } - let msg: JsMsg | null = null; try { try { @@ -1185,6 +1179,11 @@ async function main(): Promise { } if (!msg) continue; + await jobGate.acquire(); + if (stopping) { + jobGate.release(); + return; + } await processMessage({ msg, codec: input.codec, @@ -1192,7 +1191,9 @@ async function main(): Promise { workerLabel: input.workerLabel, }); } finally { - jobGate.release(); + if (msg) { + jobGate.release(); + } } } }