commit f19ef16ad6c6db0361253620088a5b37b9d0ab4d
parent 811e5fc9b529d6efa2833e58e9a08165490f3281
Author: Christoph Lohmann <20h@r-36.net>
Date:   Fri, 24 May 2019 20:19:14 +0200
Wait for children to exit, so there are no zombies left.
Diffstat:
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/thingmenu.c b/thingmenu.c
@@ -9,6 +9,8 @@
 #include <string.h>
 #include <stdlib.h>
 #include <libgen.h>
+#include <sys/types.h>
+#include <sys/wait.h>
 #include <X11/keysym.h>
 #include <X11/Xatom.h>
 #include <X11/Xlib.h>
@@ -524,14 +526,13 @@ void
 runentry(Entry *e)
 {
 	char *shell;
-	int pid;
 
 	if (oneshot || e->forceexit)
 		running = False;
 
-	switch (pid = fork()) {
+	switch (fork()) {
 	case -1:
-		return;
+		break;
 	case 0:
 		shell = getenv("SHELL");
 		if (!shell)
@@ -539,6 +540,9 @@ runentry(Entry *e)
 
 		execlp(shell, basename(shell), "-c", e->cmd, (char *)NULL);
 		break;
+	default:
+		wait(NULL);
+		break;
 	}
 }