From 2e561a634ae3e747b293a4e05eaf44726968dc1a Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Thu, 8 Sep 2016 10:26:04 +0200 Subject: 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. --- src/lib/lockfile.c | 4 ++-- src/lib/shm_ap_rbuff.c | 4 ++-- src/lib/shm_rdrbuff.c | 4 ++-- 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, -- cgit v1.2.3