now exits instead of restarting if child dies due to an

unexpected signal.
This commit is contained in:
crs 2002-06-09 16:53:57 +00:00
parent 555aa19eb2
commit a9910041b3
1 changed files with 16 additions and 2 deletions

View File

@ -102,11 +102,25 @@ int CUnixPlatform::restart(
// what happened? if the child exited normally with a
// status less than 16 then the child was deliberately
// terminated so we also terminate. otherwise, we
// loop.
// terminated so we also terminate.
if (WIFEXITED(status) && WEXITSTATUS(status) < minErrorCode) {
return WEXITSTATUS(status);
}
// did child die horribly?
if (WIFSIGNALED(status)) {
switch (WTERMSIG(status)) {
case SIGHUP:
case SIGINT:
case SIGQUIT:
case SIGTERM:
break;
default:
// uh oh. bail out.
return 16;
}
}
break;
}