Re: [PATCH] http-push: remove remote locks on exit signals
- From
Clemens Buchacher <drizzd@aon.at>
- Date
- May 23, 2008, 22:17 UTC
- Message-ID
- <20080523221723.GA4366@localhost>
- In-Reply-To
- <7vod6wr95y.fsf@gitster.siamese.dyndns.org>
Hi,
On Fri, May 23, 2008 at 02:40:41PM -0700, Junio C Hamano wrote:
Show 10 quoted lines
> Clemens Buchacher <drizzd@aon.at> writes:
> > +static void remove_locks_on_signal(int signo)
> > +{
> > + remove_locks();
> > + signal(SIGINT, SIG_DFL);
> > + raise(signo);
> > +}
> > +
>
> If you caught signo, shouldn't you be resetting that signo not SIGINT?True. I suppose we should fix that in remove_lock_file_on_signal() as well, then? It does exactly the same thing.
Show 11 quoted lines
> > static void remote_ls(const char *path, int flags, > > void (*userFunc)(struct remote_ls_ctx *ls), > > void *userData); > > @@ -2255,6 +2273,8 @@ int main(int argc, char **argv) > > goto cleanup; > > } > > > > + signal(SIGINT, remove_locks_on_signal); > > + > > and you may care more than just INT but perhaps HUP and others?
SIGINT was bothering me the most, because I often kill http-push by pressing Ctrl+C. I also considered adding SIGQUIT, but decided against it because normally I press Ctrl+\ only if I want the program to quit _right now_ and Ctrl+C does not work. On the other hand, sending the signal twice will terminate http-push either way.
I don't know in which situation SIGHUP would come into play.
Regards, Clemens