SMOLNET PORTAL home about changes
iHandle sigchld to reap zombies immideately - thingmenu - A simple graphical menu launcher for X11.	Err	bitreich.org	70
hgit clone git://bitreich.org/thingmenu	URL:git://bitreich.org/thingmenu	bitreich.org	70
1Log	/scm/thingmenu/log.gph	bitreich.org	70
1Files	/scm/thingmenu/files.gph	bitreich.org	70
1Refs	/scm/thingmenu/refs.gph	bitreich.org	70
1Tags	/scm/thingmenu/tag	bitreich.org	70
1LICENSE	/scm/thingmenu/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit f3edf619a8441c5ebc5ea4b209770bf30788c137	/scm/thingmenu/commit/f3edf619a8441c5ebc5ea4b209770bf30788c137.gph	bitreich.org	70
1parent f19ef16ad6c6db0361253620088a5b37b9d0ab4d	/scm/thingmenu/commit/f19ef16ad6c6db0361253620088a5b37b9d0ab4d.gph	bitreich.org	70
hAuthor: Platon Ryzhikov <ihummer63@yandex.ru>	URL:mailto:ihummer63@yandex.ru	bitreich.org	70
iDate:   Sun, 26 May 2019 17:52:29 +0300	Err	bitreich.org	70
i	Err	bitreich.org	70
iHandle sigchld to reap zombies immideately	Err	bitreich.org	70
i	Err	bitreich.org	70
iSigned-off-by: Christoph Lohmann <20h@r-36.net>	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M thingmenu.c                         |      17 +++++++++++++----	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 13 insertions(+), 4 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/thingmenu.c b/thingmenu.c	/scm/thingmenu/file/thingmenu.c.gph	bitreich.org	70
i@@ -4,12 +4,12 @@	Err	bitreich.org	70
i  */	Err	bitreich.org	70
i #include <unistd.h>	Err	bitreich.org	70
i #include <locale.h>	Err	bitreich.org	70
i+#include <signal.h>	Err	bitreich.org	70
i #include <stdarg.h>	Err	bitreich.org	70
i #include <stdio.h>	Err	bitreich.org	70
i #include <string.h>	Err	bitreich.org	70
i #include <stdlib.h>	Err	bitreich.org	70
i #include <libgen.h>	Err	bitreich.org	70
i-#include <sys/types.h>	Err	bitreich.org	70
i #include <sys/wait.h>	Err	bitreich.org	70
i #include <X11/keysym.h>	Err	bitreich.org	70
i #include <X11/Xatom.h>	Err	bitreich.org	70
i@@ -75,6 +75,7 @@ static void leavenotify(XEvent *e);	Err	bitreich.org	70
i static void press(Entry *e);	Err	bitreich.org	70
i static void run(void);	Err	bitreich.org	70
i static void setup(void);	Err	bitreich.org	70
i+static void sigchld(int unused);	Err	bitreich.org	70
i static int textnw(const char *text, uint len);	Err	bitreich.org	70
i static void unpress(Entry *e);	Err	bitreich.org	70
i static void updateentries(void);	Err	bitreich.org	70
i@@ -423,6 +424,9 @@ setup(void)	Err	bitreich.org	70
i         XClassHint *ch;	Err	bitreich.org	70
i         int i, sh, sw, ls;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+        /* clean up any zombies immediately */	Err	bitreich.org	70
i+        sigchld(0);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i         /* init screen */	Err	bitreich.org	70
i         screen = DefaultScreen(dpy);	Err	bitreich.org	70
i         root = RootWindow(dpy, screen);	Err	bitreich.org	70
i@@ -510,6 +514,14 @@ setup(void)	Err	bitreich.org	70
i         drawmenu();	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i+sigchld(int unused)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        if (signal(SIGCHLD, sigchld) == SIG_ERR)	Err	bitreich.org	70
i+                die("can't install SIGCHLD handler:");	Err	bitreich.org	70
i+        while (0 < waitpid(-1, NULL, WNOHANG));	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i int	Err	bitreich.org	70
i textnw(const char *text, uint len)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i@@ -540,9 +552,6 @@ runentry(Entry *e)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                 execlp(shell, basename(shell), "-c", e->cmd, (char *)NULL);	Err	bitreich.org	70
i                 break;	Err	bitreich.org	70
i-        default:	Err	bitreich.org	70
i-                wait(NULL);	Err	bitreich.org	70
i-                break;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/thingmenu/commit/f3edf619a844...
Content-Typetext/plain; charset=utf-8