Remove obselete SIG setup and action stuff

This commit is contained in:
Mike Brady
2019-09-04 09:19:44 +01:00
parent 5c90204ecf
commit a3a1884f71
-78
View File
@@ -116,42 +116,6 @@ int daemonisewithout = 0;
char configuration_file_path[4096 + 1];
char actual_configuration_file_path[4096 + 1];
static void sig_ignore(__attribute__((unused)) int foo, __attribute__((unused)) siginfo_t *bar,
__attribute__((unused)) void *baz) {}
static void sig_shutdown(__attribute__((unused)) int foo, __attribute__((unused)) siginfo_t *bar,
__attribute__((unused)) void *baz) {
debug(2, "shutdown requested...");
#ifdef CONFIG_LIBDAEMON
if (pid == 0) {
daemon_retval_send(255);
daemon_pid_file_remove();
}
#endif
exit(EXIT_SUCCESS);
}
static void sig_child(__attribute__((unused)) int foo, __attribute__((unused)) siginfo_t *bar,
__attribute__((unused)) void *baz) {
// wait for child processes to exit
pid_t pid;
while ((pid = waitpid((pid_t)-1, 0, WNOHANG)) > 0) {
}
}
static void sig_disconnect_audio_output(__attribute__((unused)) int foo,
__attribute__((unused)) siginfo_t *bar,
__attribute__((unused)) void *baz) {
debug(1, "disconnect audio output requested.");
set_requested_connection_state_to_output(0);
}
static void sig_connect_audio_output(__attribute__((unused)) int foo,
__attribute__((unused)) siginfo_t *bar,
__attribute__((unused)) void *baz) {
debug(1, "connect audio output requested.");
set_requested_connection_state_to_output(1);
}
void print_version(void) {
char *version_string = get_version_string();
if (version_string) {
@@ -1227,46 +1191,6 @@ void *dbus_thread_func(__attribute__((unused)) void *arg) {
}
#endif
void signal_setup(void) {
// mask off all signals before creating threads.
// this way we control which thread gets which signals.
// for now, we don't care which thread gets the following.
sigset_t set;
sigfillset(&set);
sigdelset(&set, SIGINT);
sigdelset(&set, SIGTERM);
sigdelset(&set, SIGHUP);
sigdelset(&set, SIGSTOP);
sigdelset(&set, SIGCHLD);
sigdelset(&set, SIGUSR2);
pthread_sigmask(SIG_BLOCK, &set, NULL);
// SIGUSR1 is used to interrupt a thread if blocked in pselect
pthread_sigmask(SIG_SETMASK, NULL, &pselect_sigset);
sigdelset(&pselect_sigset, SIGUSR1);
// setting this to SIG_IGN would prevent signalling any threads.
struct sigaction sa;
memset(&sa, 0, sizeof(sa));
sa.sa_flags = SA_SIGINFO;
sa.sa_sigaction = &sig_ignore;
sigaction(SIGUSR1, &sa, NULL);
sa.sa_flags = SA_SIGINFO | SA_RESTART;
sa.sa_sigaction = &sig_shutdown;
sigaction(SIGINT, &sa, NULL);
sigaction(SIGTERM, &sa, NULL);
sa.sa_sigaction = &sig_disconnect_audio_output;
sigaction(SIGUSR2, &sa, NULL);
sa.sa_sigaction = &sig_connect_audio_output;
sigaction(SIGHUP, &sa, NULL);
sa.sa_sigaction = &sig_child;
sigaction(SIGCHLD, &sa, NULL);
}
#ifdef CONFIG_LIBDAEMON
char pid_file_path_string[4096] = "\0";
@@ -1626,8 +1550,6 @@ int main(int argc, char **argv) {
if (!main_thread_id)
debug(1, "Main thread is set up to be NULL!");
signal_setup();
// make sure the program can create files that group and world can read
umask(S_IWGRP | S_IWOTH);