diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ac27d607..53a65a402 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,7 +63,12 @@ else() endif() # Check OS -check_include_file("sys/eventfd.h" HAS_EVENTFD) +# Use the switch NO_EVENTFD to deactivate eventfd usage indepentent of availability on OS +if(NOT ${NO_EVENTFD} MATCHES "1") + check_include_file("sys/eventfd.h" HAS_EVENTFD) +else() + set(HAS_EVENTFD 0) +endif() check_include_file("semaphore.h" HAS_SEMAPHORE) check_include_file("sys/mman.h" HAS_MMAN) diff --git a/lib/queue_signalled.c b/lib/queue_signalled.c index cd9be6ecf..6728cf85c 100644 --- a/lib/queue_signalled.c +++ b/lib/queue_signalled.c @@ -47,8 +47,13 @@ int queue_signalled_init(struct queue_signalled *qs, size_t size, struct memory_ #ifdef __linux__ if (flags & QUEUE_SIGNALLED_PROCESS_SHARED) qs->mode = QUEUE_SIGNALLED_PTHREAD; - else + else { +#ifdef HAS_EVENTFD qs->mode = QUEUE_SIGNALLED_EVENTFD; +#else + qs->mode = QUEUE_SIGNALLED_PTHREAD; +#endif + } #elif defined(__APPLE__) if (flags & QUEUE_SIGNALLED_PROCESS_SHARED) qs->mode = QUEUE_SIGNALLED_PTHREAD;