diff options
author | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-07-28 21:15:17 +0200 |
---|---|---|
committer | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-07-29 13:58:38 +0200 |
commit | ce401448d62f65956ed57b077af2b315f59efe94 (patch) | |
tree | afcfd1cb6399811f2275a7ebfc345f8e3f3afd27 /src/lib/lockfile.c | |
parent | 2d529f912c089033e2f40fd0978ccb741bfe2bbb (diff) | |
download | ouroboros-ce401448d62f65956ed57b077af2b315f59efe94.tar.gz ouroboros-ce401448d62f65956ed57b077af2b315f59efe94.zip |
lib: Portability to FreeBSD
Various portability fixes for FreeBSD. POSIX requires shm file names
to start with a "/" to be portable. lseek(2) can be undefined on
POSIX shm, replaced with ftruncate(2). IRMd check on existing lockfile
more portable.
FreeBSD 11.0 is preferred as it natively supports robust mutexes.
Full working LLC implementation pending.
Diffstat (limited to 'src/lib/lockfile.c')
-rw-r--r-- | src/lib/lockfile.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/lockfile.c b/src/lib/lockfile.c index a93d5f17..75ee2085 100644 --- a/src/lib/lockfile.c +++ b/src/lib/lockfile.c @@ -60,7 +60,7 @@ struct lockfile * lockfile_create() { return NULL; } - if (lseek(lf->fd, LF_SIZE - 1, SEEK_SET) < 0) { + if (ftruncate(lf->fd, LF_SIZE - 1) < 0) { LOG_DBGF("Failed to extend lockfile."); free(lf); return NULL; @@ -99,7 +99,7 @@ struct lockfile * lockfile_open() { return NULL; lf->fd = shm_open(LOCKFILE_NAME, O_RDWR, 0666); - if (lf->fd == -1) { + if (lf->fd < 0) { LOG_DBGF("Could not open lock file."); free(lf); return NULL; |