do not assume that waitpid returning 0 means that SIGCHILD will not be triggered