mirror of
https://github.com/swaywm/sway.git
synced 2025-10-29 05:40:18 -04:00
Replace signal() with sigaction()
The man page for signal(3) reads: > new applications should use sigaction() rather than signal()
This commit is contained in:
parent
0e19d85d37
commit
38a42f97d4
3 changed files with 12 additions and 8 deletions
12
sway/main.c
12
sway/main.c
|
|
@ -161,19 +161,21 @@ static void restore_signals(void) {
|
||||||
sigset_t set;
|
sigset_t set;
|
||||||
sigemptyset(&set);
|
sigemptyset(&set);
|
||||||
sigprocmask(SIG_SETMASK, &set, NULL);
|
sigprocmask(SIG_SETMASK, &set, NULL);
|
||||||
signal(SIGCHLD, SIG_DFL);
|
|
||||||
signal(SIGPIPE, SIG_DFL);
|
struct sigaction sa_dfl = { .sa_handler = SIG_DFL };
|
||||||
|
sigaction(SIGCHLD, &sa_dfl, NULL);
|
||||||
|
sigaction(SIGPIPE, &sa_dfl, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void init_signals(void) {
|
static void init_signals(void) {
|
||||||
wl_event_loop_add_signal(server.wl_event_loop, SIGTERM, term_signal, NULL);
|
wl_event_loop_add_signal(server.wl_event_loop, SIGTERM, term_signal, NULL);
|
||||||
wl_event_loop_add_signal(server.wl_event_loop, SIGINT, term_signal, NULL);
|
wl_event_loop_add_signal(server.wl_event_loop, SIGINT, term_signal, NULL);
|
||||||
|
|
||||||
|
struct sigaction sa_ign = { .sa_handler = SIG_IGN };
|
||||||
// avoid need to reap children
|
// avoid need to reap children
|
||||||
signal(SIGCHLD, SIG_IGN);
|
sigaction(SIGCHLD, &sa_ign, NULL);
|
||||||
|
|
||||||
// prevent ipc write errors from crashing sway
|
// prevent ipc write errors from crashing sway
|
||||||
signal(SIGPIPE, SIG_IGN);
|
sigaction(SIGPIPE, &sa_ign, NULL);
|
||||||
|
|
||||||
pthread_atfork(NULL, NULL, restore_signals);
|
pthread_atfork(NULL, NULL, restore_signals);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -93,8 +93,9 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
free(socket_path);
|
free(socket_path);
|
||||||
|
|
||||||
signal(SIGINT, sig_handler);
|
struct sigaction sa = { .sa_handler = sig_handler };
|
||||||
signal(SIGTERM, sig_handler);
|
sigaction(SIGINT, &sa, NULL);
|
||||||
|
sigaction(SIGTERM, &sa, NULL);
|
||||||
|
|
||||||
swaybar.running = true;
|
swaybar.running = true;
|
||||||
bar_run(&swaybar);
|
bar_run(&swaybar);
|
||||||
|
|
|
||||||
|
|
@ -102,7 +102,8 @@ int main(int argc, char **argv) {
|
||||||
sway_log(SWAY_DEBUG, "\t[%s] `%s`", button->text, button->action);
|
sway_log(SWAY_DEBUG, "\t[%s] `%s`", button->text, button->action);
|
||||||
}
|
}
|
||||||
|
|
||||||
signal(SIGTERM, sig_handler);
|
struct sigaction sa = { .sa_handler = sig_handler };
|
||||||
|
sigaction(SIGTERM, &sa, NULL);
|
||||||
|
|
||||||
swaynag_setup(&swaynag);
|
swaynag_setup(&swaynag);
|
||||||
swaynag_run(&swaynag);
|
swaynag_run(&swaynag);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue