From: Junio C Hamano Date: Sat, 05 Jul 2008 07:34:04 GMT Subject: Re: [PATCH] git daemon: avoid calling syslog() from a signal handler Message-ID: <7vej68u6mr.fsf@gitster.siamese.dyndns.org> In-Reply-To: Johannes Schindelin writes: > Signal handlers should never call syslog(), as that can raise signals > of its own. > > Instead, call the syslog() from the master process. Earlier parts seem to make sense but I am puzzled by these changes. > @@ -929,7 +945,8 @@ static int service_loop(int socknum, int *socklist) > for (;;) { > int i; > > - if (poll(pfd, socknum, -1) < 0) { > + i = poll(pfd, socknum, 1); > + if (i < 0) { > if (errno != EINTR) { > error("poll failed, resuming: %s", > strerror(errno)); > @@ -937,6 +954,10 @@ static int service_loop(int socknum, int *socklist) > } > continue; > } > + if (i == 0) { > + check_dead_children(); > + continue; > + } So you will check every 1ms to see if there are new dead children, but why is this necessary?