[backend/queue] Fix race condition that could cause PostgresJobQueue.ExecuteAsync to fail when actualParallelism is negative

This commit is contained in:
Laura Hausmann 2024-05-22 23:47:09 +02:00
parent f6e1274317
commit ba21cb2b0e
No known key found for this signature in database
GPG key ID: D044E84C5BE01605

View file

@ -254,7 +254,7 @@ public class PostgresJobQueue<T>(
token); token);
var actualParallelism = Math.Min(parallelism - runningCount, queuedCount); var actualParallelism = Math.Min(parallelism - runningCount, queuedCount);
if (actualParallelism == 0) if (actualParallelism <= 0)
{ {
await _queuedChannel.WaitAsync(token).SafeWaitAsync(queueToken); await _queuedChannel.WaitAsync(token).SafeWaitAsync(queueToken);
continue; continue;