restore SIGCHLD sighandler to default before spawning a program From sigaction(2): A child created via fork(2) inherits a copy of its parent's signal dispositions. During an execve(2), the dispositions of handled signals are reset to the default; the dispositions of ignored signals are left unchanged. This refused to start directly some programs from configuring in config.h: Some reported programs that didn't start were: mpv. Similar to the commit e81f17d4c196aaed6893fd4beed49991caa3e2a4 from dwm.
1 files changed, 8 insertions(+), 0 deletions(-) M tabbed.c
M tabbed.c => tabbed.c +8 -0
@@ 1088,11 1088,19 @@ setup(void) void spawn(const Arg *arg) { struct sigaction sa; if (fork() == 0) { if(dpy) close(ConnectionNumber(dpy)); setsid(); sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sa.sa_handler = SIG_DFL; sigaction(SIGCHLD, &sa, NULL); if (arg && arg->v) { execvp(((char **)arg->v)[0], (char **)arg->v); fprintf(stderr, "%s: execvp %s", argv0,