Fix broken logging in Zygote.cpp.
- Differentiate between clean exits and signals. - Change the logic for the waitpid warning. We should log it only if the *first* call to waitpid returned ECHILD. Change-Id: I6bc50e4ffd100fb7f3f526d6b4056bed10b8045f
This commit is contained in:
@@ -92,14 +92,10 @@ static void SigChldHandler(int /*signal_number*/) {
|
||||
if (WIFEXITED(status)) {
|
||||
if (WEXITSTATUS(status)) {
|
||||
ALOGI("Process %d exited cleanly (%d)", pid, WEXITSTATUS(status));
|
||||
} else if (false) {
|
||||
ALOGI("Process %d exited cleanly (%d)", pid, WEXITSTATUS(status));
|
||||
}
|
||||
} else if (WIFSIGNALED(status)) {
|
||||
if (WTERMSIG(status) != SIGKILL) {
|
||||
ALOGI("Process %d exited cleanly (%d)", pid, WTERMSIG(status));
|
||||
} else if (false) {
|
||||
ALOGI("Process %d exited cleanly (%d)", pid, WTERMSIG(status));
|
||||
ALOGI("Process %d exited due to signal (%d)", pid, WTERMSIG(status));
|
||||
}
|
||||
#ifdef WCOREDUMP
|
||||
if (WCOREDUMP(status)) {
|
||||
@@ -117,8 +113,10 @@ static void SigChldHandler(int /*signal_number*/) {
|
||||
}
|
||||
}
|
||||
|
||||
if (pid < 0) {
|
||||
ALOGW("Zygote SIGCHLD error in waitpid: %d", errno);
|
||||
// Note that we shouldn't consider ECHILD an error because
|
||||
// the secondary zygote might have no children left to wait for.
|
||||
if (pid < 0 && errno != ECHILD) {
|
||||
ALOGW("Zygote SIGCHLD error in waitpid: %s", strerror(errno));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user