diff --git a/centipede/runner_fork_server.cc b/centipede/runner_fork_server.cc index 6f6771779..f7a5919d7 100644 --- a/centipede/runner_fork_server.cc +++ b/centipede/runner_fork_server.cc @@ -349,6 +349,13 @@ void ForkServerCallMeVeryEarly() { if (sigwait(&wait_sigset, &sig) != 0) { Exit("###sigwait() failed\n"); } + if (sig == -1) { + // TODO(xinhaoyuan): This should never happen, but I've seen it happen + // on MacOS. Need further investigation. + Log("###sigwait() returns 0 without setting signal number!! Assume " + "SIGCHLD\n"); + sig = SIGCHLD; + } if (sig == SIGINT) { Log("###Get SIGINT - ignoring\n"); } else if (sig == SIGTERM) {