diff --git a/executor.go b/executor.go index e9aafd57..9a9cd220 100644 --- a/executor.go +++ b/executor.go @@ -67,18 +67,17 @@ func (e *executor) start() { case RescheduleMode: return case WaitMode: - for { - select { - case <-stopCtx.Done(): - return - case <-f.ctx.Done(): - return - default: - } - - if e.maxRunningJobs.TryAcquire(1) { - break - } + select { + case <-stopCtx.Done(): + return + case <-f.ctx.Done(): + return + default: + } + + if err := e.maxRunningJobs.Acquire(f.ctx, 1); err != nil { + break + } } }