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.
389181f6beMatthew Lugg committed on 5/26/2024, 8:44:14 PM· committed by Andrew Kelleyparent591bbaf
1 file changedLine totals unavailable