summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2013-04-22 08:42:19 +0000
committerNicholas Marriott <nicm@openbsd.org>2013-04-22 08:42:19 +0000
commitd89b35e6826ecaccc4d2f421c8013f35ec5854a0 (patch)
tree7a2298d1488665b1dd45e031238b95e5ca0ceaa8
parent5dda1abc32b7b1eb59901a5592569e21d88c6ad2 (diff)
Use lockf which is more portable than flock, from Dagobert Michelsen.
-rw-r--r--client.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/client.c b/client.c
index 70e7f1ec..0c8657eb 100644
--- a/client.c
+++ b/client.c
@@ -78,8 +78,8 @@ client_get_lock(char *lockfile)
if ((lockfd = open(lockfile, O_WRONLY|O_CREAT, 0600)) == -1)
fatal("open failed");
- if (flock(lockfd, LOCK_EX|LOCK_NB) == -1 && errno == EWOULDBLOCK) {
- while (flock(lockfd, LOCK_EX) == -1 && errno == EINTR)
+ if (lockf(lockfd, F_TLOCK, 0) == -1 && errno == EAGAIN) {
+ while (lockf(lockfd, F_LOCK, 0) == -1 && errno == EINTR)
/* nothing */;
close(lockfd);
return (-1);