Was sequential `for (i = 0; i < 5; i++) rebuild_one(...)` at ~3:15 wall. Split into spawn_build (fork+system ww_ww build) phase and waitpid+slurp_eq collect phase. The five tool builds now run concurrently; wall drops from sum(builds) to max(builds). Per-tool workdir already pid-keyed (/tmp/wwsr_<pid>_<tool>); add build.err per workdir so concurrent diagnostics don't merge — collect phase replays the err file on failure. 180s timeout still inside the cd && ... && ww_ww build string. All five tools' failure status collected before reporting, so a multi-divergence run names every tool (not just the first). make test wall: 4m31s → 3m17s on 8 cores. 132/132 green.
5.9 KiB
5.9 KiB