commit - b246ebb01fd779208a9c53c20075fc8a94334f96
commit + a1c232cd01d5cdefe98b5cc36304114a6874fb3b
blob - 71870f738fd5a6c106721b79c3acfde3104c70dc
blob + 6181d1bb7c8f9ca62d555a8ea2a4d641a4f069ec
--- src/main.c
+++ src/main.c
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
+#include <sys/wait.h>
#include <X11/Xlib.h>
void
sig_handler(int sig)
{
+ int saved_errno = errno;
+
switch (sig)
{
case SIGTERM:
case SIGHUP:
reload_config = 1;
break;
+ case SIGCHLD:
+ while (waitpid(-1, NULL, WNOHANG) > 0);
+ break;
case SIGUSR1:
reload_mail = 1;
break;
reload_battery = 1;
break;
}
+ errno = saved_errno;
}
void
if (sigaction(SIGTERM, &sa, NULL) == -1) perror("sigaction");
if (sigaction(SIGINT, &sa, NULL) == -1) perror("sigaction");
if (sigaction(SIGHUP, &sa, NULL) == -1) perror("sigaction");
+ if (sigaction(SIGCHLD, &sa, NULL) == -1) perror("sigaction");
if (sigaction(SIGUSR1, &sa, NULL) == -1) perror("sigaction");
if (sigaction(SIGUSR2, &sa, NULL) == -1) perror("sigaction");
}