std.process.Child: prevent racing children from inheriting one another's pipes

The added comment explains the issue here relatively well. The new
progress API made this bug obvious because it became visibly clear that
certain Compile steps were seemingly "hanging" until other steps
completed. As it turned out, these child processes had raced to spawn,
and hence one had inherited the other's stdio pipes, meaning the `poll`
call in `std.Build.Step.evalZigProcess` was not identifying the child
stdout as closed until an unrelated process terminated.
88146ea704Matthew Lugg committed on 6/6/2024, 5:43:14 PM· committed by Andrew Kelleyparent6e469bc
1 file changedLine totals unavailable