summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authordimitri staessens <[email protected]>2016-09-08 10:26:04 +0200
committerdimitri staessens <[email protected]>2016-09-08 10:26:04 +0200
commit2e561a634ae3e747b293a4e05eaf44726968dc1a (patch)
tree7bb1e6ab8131d1d679f5a5bb5e5953e4a60d3986 /src/lib
parentb9793ab68aa321b0dac14d1dff5789edb95ad0bb (diff)
downloadouroboros-2e561a634ae3e747b293a4e05eaf44726968dc1a.tar.gz
ouroboros-2e561a634ae3e747b293a4e05eaf44726968dc1a.zip
lib: Fix shm for evil devices
Cupertino's finest don't seem to support a write call with a filedescriptor that points to a shared memory file. ENOTSUP is not mentioned in their manpage either. Classic.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/lockfile.c4
-rw-r--r--src/lib/shm_ap_rbuff.c4
-rw-r--r--src/lib/shm_rdrbuff.c4
3 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/lockfile.c b/src/lib/lockfile.c
index 81bed687..04ce9324 100644
--- a/src/lib/lockfile.c
+++ b/src/lib/lockfile.c
@@ -64,13 +64,13 @@ struct lockfile * lockfile_create() {
free(lf);
return NULL;
}
-
+#ifndef __APPLE__
if (write(lf->fd, "", 1) != 1) {
LOG_DBGF("Failed to finalise lockfile.");
free(lf);
return NULL;
}
-
+#endif
lf->api = mmap(NULL,
LF_SIZE, PROT_READ | PROT_WRITE,
MAP_SHARED,
diff --git a/src/lib/shm_ap_rbuff.c b/src/lib/shm_ap_rbuff.c
index 473894d5..d9e332fe 100644
--- a/src/lib/shm_ap_rbuff.c
+++ b/src/lib/shm_ap_rbuff.c
@@ -104,13 +104,13 @@ static struct shm_ap_rbuff * shm_ap_rbuff_create(bool dir)
free(rb);
return NULL;
}
-
+#ifndef __APPLE__
if (write(shm_fd, "", 1) != 1) {
LOG_DBG("Failed to finalise extension of ringbuffer.");
free(rb);
return NULL;
}
-
+#endif
shm_base = mmap(NULL,
SHM_RBUFF_FILE_SIZE,
PROT_READ | PROT_WRITE,
diff --git a/src/lib/shm_rdrbuff.c b/src/lib/shm_rdrbuff.c
index 7c4927fc..bf5c7f16 100644
--- a/src/lib/shm_rdrbuff.c
+++ b/src/lib/shm_rdrbuff.c
@@ -190,14 +190,14 @@ struct shm_rdrbuff * shm_rdrbuff_create()
free(rdrb);
return NULL;
}
-
+#ifndef __APPLE
if (write(shm_fd, "", 1) != 1) {
LOG_DBGF("Failed to finalise extension of shared memory map.");
free(shm_rdrb_fn);
free(rdrb);
return NULL;
}
-
+#endif
shm_base = mmap(NULL,
SHM_FILE_SIZE,
PROT_READ | PROT_WRITE,