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:
+5
-3
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user