added merged patch of anydot and Neale
Anselm R Garbe garbeam@gmail.com
Thu, 13 Aug 2009 10:45:59 +0100
1 files changed,
7 insertions(+),
3 deletions(-)
jump to
M
dwm.c
→
dwm.c
@@ -207,7 +207,7 @@ static void setlayout(const Arg *arg);
static void setmfact(const Arg *arg); static void setup(void); static void showhide(Client *c); -static void sigchld(int signal); +static void sigchld(int unused); static void spawn(const Arg *arg); static void tag(const Arg *arg); static void tagmon(const Arg *arg);@@ -1428,6 +1428,10 @@ unsigned int i;
int w; XSetWindowAttributes wa; + /* clean up any zombies immediately */ + signal(SIGCHLD, sigchld); + sigchld(0); + /* init screen */ screen = DefaultScreen(dpy); root = RootWindow(dpy, screen);@@ -1496,13 +1500,13 @@ }
void -sigchld(int signal) { +sigchld(int unused) { while(0 < waitpid(-1, NULL, WNOHANG)); + signal(SIGCHLD, sigchld); } void spawn(const Arg *arg) { - signal(SIGCHLD, sigchld); if(fork() == 0) { if(dpy) close(ConnectionNumber(dpy));