lock_repo_for_gc(): compute the path to "gc.pid" only once

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Michael Haggerty 2015-08-10 11:47:48 +02:00 committed by Junio C Hamano
parent 284098f13f
commit 00539cef39
1 changed files with 6 additions and 3 deletions

View File

@ -199,6 +199,7 @@ static const char *lock_repo_for_gc(int force, pid_t* ret_pid)
uintmax_t pid; uintmax_t pid;
FILE *fp; FILE *fp;
int fd; int fd;
char *pidfile_path;


if (pidfile) if (pidfile)
/* already locked */ /* already locked */
@ -207,12 +208,13 @@ static const char *lock_repo_for_gc(int force, pid_t* ret_pid)
if (gethostname(my_host, sizeof(my_host))) if (gethostname(my_host, sizeof(my_host)))
strcpy(my_host, "unknown"); strcpy(my_host, "unknown");


fd = hold_lock_file_for_update(&lock, git_path("gc.pid"), pidfile_path = git_pathdup("gc.pid");
fd = hold_lock_file_for_update(&lock, pidfile_path,
LOCK_DIE_ON_ERROR); LOCK_DIE_ON_ERROR);
if (!force) { if (!force) {
static char locking_host[128]; static char locking_host[128];
int should_exit; int should_exit;
fp = fopen(git_path("gc.pid"), "r"); fp = fopen(pidfile_path, "r");
memset(locking_host, 0, sizeof(locking_host)); memset(locking_host, 0, sizeof(locking_host));
should_exit = should_exit =
fp != NULL && fp != NULL &&
@ -236,6 +238,7 @@ static const char *lock_repo_for_gc(int force, pid_t* ret_pid)
if (fd >= 0) if (fd >= 0)
rollback_lock_file(&lock); rollback_lock_file(&lock);
*ret_pid = pid; *ret_pid = pid;
free(pidfile_path);
return locking_host; return locking_host;
} }
} }
@ -246,7 +249,7 @@ static const char *lock_repo_for_gc(int force, pid_t* ret_pid)
strbuf_release(&sb); strbuf_release(&sb);
commit_lock_file(&lock); commit_lock_file(&lock);


pidfile = git_pathdup("gc.pid"); pidfile = pidfile_path;
sigchain_push_common(remove_pidfile_on_signal); sigchain_push_common(remove_pidfile_on_signal);
atexit(remove_pidfile); atexit(remove_pidfile);