diff options
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/disk_cache.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c index 9272e9c5471..77af64ed3b0 100644 --- a/src/util/disk_cache.c +++ b/src/util/disk_cache.c @@ -907,7 +907,17 @@ cache_put(void *job, int thread_index) * open with the flock held. So just let that file be responsible * for writing the file. */ +#ifdef HAVE_FLOCK err = flock(fd, LOCK_EX | LOCK_NB); +#else + struct flock lock = { + .l_start = 0, + .l_len = 0, /* entire file */ + .l_type = F_WRLCK, + .l_whence = SEEK_SET + }; + err = fcntl(fd, F_SETLK, &lock); +#endif if (err == -1) goto done; |