removing debug messages from signal handlers

As unfortunate as it is to remove such useful debugging messages, it's
necessary to fix a potential deadlock with signal handling.  A bunch of
functions the debug functions call aren't safe to call from a signal
handler.  There are some alternate solutions, but they're neither pretty
nor simple.  So just remove them entirely for now.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6828 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
J. Alexander Treuman
2007-08-27 21:18:35 +00:00
parent 752bf24b74
commit 1b045d0672
4 changed files with 18 additions and 10 deletions
+5 -3
View File
@@ -44,23 +44,25 @@ void decodeSigHandler(int sig, siginfo_t * si, void *v)
if (sig == SIGCHLD) {
int status;
if (decode_pid == wait3(&status, WNOHANG, NULL)) {
/*
if (WIFSIGNALED(status)) {
if (WTERMSIG(status) != SIGTERM) {
ERROR("decode process died from "
"signal: %i\n", WTERMSIG(status));
}
}
*/
decode_pid = 0;
getPlayerData()->playerControl.decode_pid = 0;
}
} else if (sig == SIGTERM) {
int pid = decode_pid;
if (pid > 0) {
DEBUG("player (or child) got SIGTERM\n");
/* DEBUG("player (or child) got SIGTERM\n"); */
kill(pid, SIGCONT);
kill(pid, SIGTERM);
} else
DEBUG("decoder (or child) got SIGTERM\n");
} /* else
DEBUG("decoder (or child) got SIGTERM\n"); */
exit(EXIT_SUCCESS);
}
}