Re: [PATCH v2 2/2] gc: config option for running --auto in background
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:59:53
Duy Nguyen [off-list ref] writes:
On Tue, Feb 11, 2014 at 2:11 AM, Junio C Hamano [off-list ref] wrote:quoted
On Mon, Feb 10, 2014 at 10:43 AM, Junio C Hamano [off-list ref] wrote:quoted
quoted
If --quiet is set, we should not be printing anyway. If not, I thinkg we could only print "auto packing in background.." when we actually can do that, else just print the old message. It means an #ifdef NO_POSIX_GOODIES here again though..Didn't you change it not to die but return nosys or something?Ah, the problem is that it is too late to take back "... will do so in the background" when you noticed that daemonize() did not succeed, so you would need a way to see if we can daemonize() before actually doing so if you want to give different messages. "int can_daemonize(void)" could be an answer that is nicer than NO_POSIX_GOODIES, but I am not sure if it is worth it.Or we could pass the "quiet" flag to daemonize() and let it print something in the #ifdef NO_POSIX_GOODIES part.
Hmph... What would that something say? "I was asked to gc in the
background but I can't here" is not suitable for daemonize() that is
not specific to "gc".
The flow I had in mind was something along the lines of this
if (!quiet) {
if (detach_auto && can_daemonize())
say "auto packing in the background";
else
say "auto packing"
}
if (detach_auto && can_daemonize())
daemonize();
If we had daemonize(noisy=1) and coded it this way:
if (!quiet)
say "auto packing";
if (detach_auto)
daemonize(!quiet);
we could do something like:
daemonize(int noisy) {
if (noisy && !defined(NO_POSIX_GOODIES))
say ", and doing so in the background";
... do the actual daemonizing ...
}
but that feels ugly.