diff --git a/mx_flock.c b/mx_flock.c index ead5ae4d..ef4d3ede 100644 --- a/mx_flock.c +++ b/mx_flock.c @@ -149,16 +149,19 @@ int mx_funlock(struct mx_flock *lock) if (res < 0) mx_log_warning("unlink(): %m"); - res = flock(lock->fd, LOCK_UN); - if (res < 0) - mx_log_warning("flock(): %m"); - _flock_close(lock); _flock_free(lock); return res; } +/* as above, but don't delete lock file + */ +void mx_funlock_nodelete(struct mx_flock *lock) { + _flock_close(lock); + _flock_free(lock); +} + void mx_flock_free(struct mx_flock *lock) { _flock_free(lock); diff --git a/mx_flock.h b/mx_flock.h index 34ab4e8d..9b632829 100644 --- a/mx_flock.h +++ b/mx_flock.h @@ -10,6 +10,7 @@ struct mx_flock { struct mx_flock *mx_flock(int operation, char *fmt, ...); int mx_funlock(struct mx_flock *lock); +void mx_funlock_nodelete(struct mx_flock *lock); void mx_flock_free(struct mx_flock *lock); #endif diff --git a/mxqd.c b/mxqd.c index b960426a..c858746f 100644 --- a/mxqd.c +++ b/mxqd.c @@ -1390,7 +1390,7 @@ unsigned long start_job(struct mxq_group_list *glist) job->host_pid = getpid(); mx_log_debug("starting reaper process."); - mx_funlock(server->flock); + mx_funlock_nodelete(server->flock); server->flock = NULL; mx_mysql_finish(&server->mysql);