Code

tests: add a testcase for "git submodule sync"
[git.git] / lockfile.c
index e9e0095e9f98f9a05d2f88f5e97766930a99d89d..4023797b00fe21ecbabe3407ef8a12fca0690607 100644 (file)
@@ -24,7 +24,7 @@ static void remove_lock_file(void)
 static void remove_lock_file_on_signal(int signo)
 {
        remove_lock_file();
-       signal(SIGINT, SIG_DFL);
+       signal(signo, SIG_DFL);
        raise(signo);
 }
 
@@ -135,6 +135,9 @@ static int lock_file(struct lock_file *lk, const char *path)
        if (0 <= lk->fd) {
                if (!lock_file_list) {
                        signal(SIGINT, remove_lock_file_on_signal);
+                       signal(SIGHUP, remove_lock_file_on_signal);
+                       signal(SIGTERM, remove_lock_file_on_signal);
+                       signal(SIGQUIT, remove_lock_file_on_signal);
                        atexit(remove_lock_file);
                }
                lk->owner = getpid();