--- dwm.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/dwm.c b/dwm.c index b3c43ee..687b6ec 100644 --- a/dwm.c +++ b/dwm.c _AT_@ -29,7 +29,6 @@ #include <string.h> #include <unistd.h> #include <sys/types.h> -#include <sys/wait.h> #include <X11/cursorfont.h> #include <X11/keysym.h> #include <X11/Xatom.h> _AT_@ -205,7 +204,6 @@ static void setmfact(const Arg *arg); static void setup(void); static void seturgent(Client *c, int urg); static void showhide(Client *c); -static void sigchld(int unused); static void spawn(const Arg *arg); static void tag(const Arg *arg); static void tagmon(const Arg *arg); _AT_@ -1539,9 +1537,15 @@ setup(void) int i; XSetWindowAttributes wa; Atom utf8string; + const struct sigaction sc = { + .sa_handler = SIG_DFL, + .sa_flags = SA_RESTART | SA_NOCLDWAIT, + }; - /* clean up any zombies immediately */ - sigchld(0); + if (sigaction(SIGCHLD, &sc, NULL)) { + perror("sigaction"); + exit(EXIT_FAILURE); + } /* init screen */ screen = DefaultScreen(dpy); _AT_@ -1635,14 +1639,6 @@ showhide(Client *c) } } -void -sigchld(int unused) -{ - if (signal(SIGCHLD, sigchld) == SIG_ERR) - die("can't install SIGCHLD handler:"); - while (0 < waitpid(-1, NULL, WNOHANG)); -} - void spawn(const Arg *arg) { -- 2.37.1Received on Tue Jul 26 2022 - 22:15:30 CEST
This archive was generated by hypermail 2.3.0 : Wed Jul 27 2022 - 04:00:31 CEST