diff options
author | 2012-03-09 09:57:40 +0000 | |
---|---|---|
committer | 2012-03-09 09:57:40 +0000 | |
commit | 549634dfad514cb4f8751be7718bab5fd7241672 (patch) | |
tree | 3d20852cba80dfa35e14d0e664429619bda1157d /usr.bin/tmux/server.c | |
parent | - remove a redundant note about tftpd; ok dlg (diff) | |
download | wireguard-openbsd-549634dfad514cb4f8751be7718bab5fd7241672.tar.xz wireguard-openbsd-549634dfad514cb4f8751be7718bab5fd7241672.zip |
Use a lock file and flock() to serialize server start, avoids problems
when running a bunch of tmux from cron at the same time. Based on a diff
from Tim Ruehsen.
Diffstat (limited to 'usr.bin/tmux/server.c')
-rw-r--r-- | usr.bin/tmux/server.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/usr.bin/tmux/server.c b/usr.bin/tmux/server.c index 876fe320f15..e990955ce72 100644 --- a/usr.bin/tmux/server.c +++ b/usr.bin/tmux/server.c @@ -1,4 +1,4 @@ -/* $OpenBSD: server.c,v 1.102 2011/03/27 20:27:26 nicm Exp $ */ +/* $OpenBSD: server.c,v 1.103 2012/03/09 09:57:40 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -104,7 +104,7 @@ server_create_socket(void) /* Fork new server. */ int -server_start(void) +server_start(int lockfd, char *lockfile) { struct window_pane *wp; int pair[2]; @@ -161,6 +161,10 @@ server_start(void) server_fd = server_create_socket(); server_client_create(pair[1]); + unlink(lockfile); + xfree(lockfile); + close(lockfd); + if (access(SYSTEM_CFG, R_OK) == 0) load_cfg(SYSTEM_CFG, NULL, &cfg_causes); else if (errno != ENOENT) { |