sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 5df5b0098971e4d7e278bd7dfc8d5a611a97f467
parent f798e9bb0bc667d07283f32d1d83b6223d375a03
Author: Taiyu <taiyu.len@gmail.com>
Date:   Thu, 13 Aug 2015 00:44:56 -0700

moved signal handling to main

Diffstat:
Msway/commands.c | 13-------------
Msway/main.c | 12++++++++++++
2 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/sway/commands.c b/sway/commands.c @@ -5,7 +5,6 @@ #include <stdlib.h> #include <string.h> #include <unistd.h> -#include <sys/wait.h> #include <ctype.h> #include "stringop.h" #include "layout.h" @@ -109,19 +108,7 @@ static bool cmd_bindsym(struct sway_config *config, int argc, char **argv) { return true; } -static void cmd_exec_cleanup(int signal) { - while (waitpid((pid_t)-1, 0, WNOHANG) > 0){}; -} - static bool cmd_exec_always(struct sway_config *config, int argc, char **argv) { - /* setup signal handler to cleanup dead proccesses */ - /* TODO: replace this with a function that has constructor attribute? */ - static bool cleanup = false; - if (cleanup == false) { - signal(SIGCHLD, cmd_exec_cleanup); - cleanup = true; - } - if (checkarg(argc, "exec_always", EXPECTED_MORE_THEN, 0) == false) { return false; } diff --git a/sway/main.c b/sway/main.c @@ -2,16 +2,23 @@ #include <stdlib.h> #include <stdbool.h> #include <wlc/wlc.h> +#include <sys/wait.h> +#include <signal.h> #include "layout.h" #include "config.h" #include "log.h" #include "handlers.h" +static void sigchld_handle(int signal); int main(int argc, char **argv) { init_log(L_DEBUG); // TODO: Control this with command line arg init_layout(); + /* Signal handling */ + signal(SIGCHLD, sigchld_handle); + + setenv("WLC_DIM", "0", 0); if (!wlc_init(&interface, argc, argv)) { return 1; @@ -25,3 +32,8 @@ int main(int argc, char **argv) { wlc_run(); return 0; } + +static void sigchld_handle(int signal) { + (void) signal; + while (waitpid((pid_t)-1, 0, WNOHANG) > 0); +}