- select can be interrupted and return EINTR so we need to loop around it
while it does so rather than treating it as a fatal error.
- all process creations are matched with a wait() so having a SIGCHLD
handler that performs a wait(-1) is pointless and racy. We tend to
loose the race over half the time and as a result were reporting
successful processes as failed.
Add a couple features:
- Skip commented lines in the host specification.
- Allow '-' as an alias for stdin in the host file specification.