From: Clemens Buchacher Date: Fri, 23 May 2008 22:17:23 GMT Subject: Re: [PATCH] http-push: remove remote locks on exit signals 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: > Clemens Buchacher 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. > > 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