summaryrefslogtreecommitdiff
path: root/lockfile.c
diff options
context:
space:
mode:
authorSven Verdoolaege <skimo@kotnet.org>2007-07-13 14:14:50 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-07-13 15:55:15 (GMT)
commit9a4cbdca34f6aa9424fce8a55fe9dd6f7c25d97b (patch)
tree03ce4f8b12cd75431034f0a51b58e2f0c2461fa0 /lockfile.c
parent689b4d552b8108d2c92c63258990ecd2bc791739 (diff)
downloadgit-9a4cbdca34f6aa9424fce8a55fe9dd6f7c25d97b.zip
git-9a4cbdca34f6aa9424fce8a55fe9dd6f7c25d97b.tar.gz
git-9a4cbdca34f6aa9424fce8a55fe9dd6f7c25d97b.tar.bz2
lockfile.c: schedule remove_lock_file only once.
Removing a lockfile once should be enough. Signed-off-by: Sven Verdoolaege <skimo@kotnet.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'lockfile.c')
-rw-r--r--lockfile.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/lockfile.c b/lockfile.c
index 5ad2858..fb8f13b 100644
--- a/lockfile.c
+++ b/lockfile.c
@@ -31,16 +31,16 @@ static int lock_file(struct lock_file *lk, const char *path)
sprintf(lk->filename, "%s.lock", path);
fd = open(lk->filename, O_RDWR | O_CREAT | O_EXCL, 0666);
if (0 <= fd) {
+ if (!lock_file_list) {
+ signal(SIGINT, remove_lock_file_on_signal);
+ atexit(remove_lock_file);
+ }
lk->owner = getpid();
if (!lk->on_list) {
lk->next = lock_file_list;
lock_file_list = lk;
lk->on_list = 1;
}
- if (lock_file_list) {
- signal(SIGINT, remove_lock_file_on_signal);
- atexit(remove_lock_file);
- }
if (adjust_shared_perm(lk->filename))
return error("cannot fix permission bits on %s",
lk->filename);