···288288 return true
289289 }
290290291291- // fresh workers ramp up by doubling (in-flight starts never exceed the
292292- // workers that already run) — the queue may no longer justify more
293293- // workers by the time the current batch is up, while a long queue still
294294- // reaches `maxWorkers` in logarithmic time instead of one by one
291291+ // the first few workers are justified by any queue that reaches this
292292+ // point — they start in parallel, which keeps small machines (CI
293293+ // runners) at exactly the previous behavior; only the wide worker tail
294294+ // of many-core machines is worth gating
295295+ if (this.activeTasks.length < Math.min(this.maxWorkers, 4)) {
296296+ return true
297297+ }
298298+299299+ // beyond that, fresh workers ramp up by doubling (in-flight starts never
300300+ // exceed the workers that already run) — the queue may no longer justify
301301+ // more workers by the time the current batch is up, while a long queue
302302+ // still reaches `maxWorkers` in logarithmic time instead of one by one
295303 const startedWorkers = this.activeTasks.length - this._startingCount
296304 if (this._startingCount >= Math.max(1, startedWorkers)) {
297305 return false