Another signal-handling refinement from RJK: the SIGCHLD handler