Hive Hive
Sign in

Cached actions no longer serialize behind spawned actions under max_concurrency=1

Metadata
Source
GitHub
Version
0.4.0
Domains
Published
May 09, 2026 · 09:25 UTC
Repository
tuist/once
Update

Cache lookups no longer queue behind real subprocess slots. Previously, the runner checked the action cache only after acquiring a concurrency permit, so with max_concurrency=1 a burst of cache hits would serialize one at a time even though each one was a no-op. The cache check now happens before permit acquisition, and re-verifies under the permit so a parallel writer still short-circuits the spawn.

Practically, CI runs that hit the cache heavily (warm builds, mostly-clean rebuilds) finish dramatically faster instead of waiting in line behind spawned actions.

Source: PR #12 commit message describing the runner permit pool fix.