diff options
author | Taiyu <taiyu.len@gmail.com> | 2015-08-13 00:44:56 -0700 |
---|---|---|
committer | Taiyu <taiyu.len@gmail.com> | 2015-08-13 00:44:56 -0700 |
commit | 5df5b0098971e4d7e278bd7dfc8d5a611a97f467 (patch) | |
tree | 99da2609292f7fbec57fb76893d3d29d052517d6 /sway/main.c | |
parent | f798e9bb0bc667d07283f32d1d83b6223d375a03 (diff) |
moved signal handling to main
Diffstat (limited to 'sway/main.c')
-rw-r--r-- | sway/main.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sway/main.c b/sway/main.c index 7661551d..7477b08c 100644 --- 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); +} |