more issues (we hadn't had enough) imagine your signal handler runs after waitpid returned -1 and set errno to EINTR, but before the errno check your signal handler causes errno to be set to something else, and upon return you exit from the loop and quit your program... not exactly intended