- return(getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&v, &l) == 0);
+ return getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&v, &l) == 0;
+}
+
+
+static RETSIGTYPE sigchld_handler(UNUSED(int val))
+{
+ signal(SIGCHLD, sigchld_handler);
+#ifdef WNOHANG
+ while (waitpid(-1, NULL, WNOHANG) > 0) {}
+#endif