Re: [PATCH] git-daemon: Simplify child management and associated logging by
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 12, 2008, 22:05 UTC
- Message-ID
- <7vzlnhq48b.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <20080812212534.6871.19377.stgit@aristoteles.cuci.nl>
"Stephen R. van den Berg" <srb@cuci.nl> writes:
Show 10 quoted lines
> making the signal handler almost a no-op. > Fix the killing code to actually be smart instead of the > pseudo-random mess. > Get rid of the silly fixed array of children and make > max-connections dynamic and configurable in the process. > Make git-daemon a proper syslogging citizen with PID-info. > Simplify the overzealous double buffering in the logroutine, > remove the artificial maximum logline length in the process. > > Signed-off-by: Stephen R. van den Berg <srb@cuci.nl>
Sorry, but this does too many things in one patch.
- Taking advantage of poll() getting interrupted by SIGCHLD, so that you do not have to do anything in the signal handler, is so obvious that I am actually ashamed of not having to think of it the last time we touched this code. Is there a poll() that does not return EINTR but just call the handler and restart after that as if nothing has happened, I have to wonder...
- Conversion from silly fixed array to dynamic and configurable maximum would be a good idea, but that is independent from the above, isn't it?
- I see you have a call to vsyslog, which is the first user of the function. How portable is it (the patch coming from you, I know Solaris would have it, and recent 4BSD also would, but what about the others)?