diff --git a/CMakeLists.txt b/CMakeLists.txt index fb366f99..31c94358 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,7 +77,7 @@ if (WITH_MILITANT) endif() set (POLLER "" CACHE STRING "Choose polling system. valid values are - kqueue, pollset, epoll, devpoll, poll or select [default=autodetect]") + kqueue, epoll, devpoll, pollset, poll or select [default=autodetect]") include (CheckFunctionExists) include (CheckTypeSize) @@ -91,15 +91,6 @@ if (POLLER STREQUAL "") endif() endif () -if (POLLER STREQUAL "") - set (CMAKE_REQUIRED_INCLUDES sys/pollset.h) - check_function_exists (pollset_create HAVE_POLLSET) - set (CMAKE_REQUIRED_INCLUDES) - if (HAVE_POLLSET) - set (POLLER "pollset") - endif() -endif () - if (POLLER STREQUAL "") set (CMAKE_REQUIRED_INCLUDES sys/epoll.h) check_function_exists (epoll_create HAVE_EPOLL) @@ -118,6 +109,15 @@ if (POLLER STREQUAL "") endif () endif () +if (POLLER STREQUAL "") + set (CMAKE_REQUIRED_INCLUDES sys/pollset.h) + check_function_exists (pollset_create HAVE_POLLSET) + set (CMAKE_REQUIRED_INCLUDES) + if (HAVE_POLLSET) + set (POLLER "pollset") + endif() +endif () + if (POLLER STREQUAL "") set (CMAKE_REQUIRED_INCLUDES poll.h) check_function_exists (poll HAVE_POLL) @@ -145,9 +145,9 @@ if (POLLER STREQUAL "") endif () if (POLLER STREQUAL "kqueue" - OR POLLER STREQUAL "pollset" OR POLLER STREQUAL "epoll" OR POLLER STREQUAL "devpoll" + OR POLLER STREQUAL "pollset" OR POLLER STREQUAL "poll" OR POLLER STREQUAL "select") message (STATUS "Detected ${POLLER} polling method") diff --git a/acinclude.m4 b/acinclude.m4 index bdf31afd..eceaf696 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -794,22 +794,6 @@ kqueue(); ) }]) -dnl ################################################################################ -dnl # LIBZMQ_CHECK_POLLER_POLLSET([action-if-found], [action-if-not-found]) # -dnl # Checks pollset polling system # -dnl ################################################################################ -AC_DEFUN([LIBZMQ_CHECK_POLLER_POLLSET], [{ - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([ -#include -#include - ],[[ -pollset_t ps = pollset_create(-1); - ]])], - [$1], [$2] - ) -}]) - dnl ################################################################################ dnl # LIBZMQ_CHECK_POLLER_EPOLL_RUN([action-if-found], [action-if-not-found]) # dnl # Checks epoll polling system can actually run # @@ -855,6 +839,22 @@ int fd = open("/dev/poll", O_RDWR); ) }]) +dnl ################################################################################ +dnl # LIBZMQ_CHECK_POLLER_POLLSET([action-if-found], [action-if-not-found]) # +dnl # Checks pollset polling system # +dnl ################################################################################ +AC_DEFUN([LIBZMQ_CHECK_POLLER_POLLSET], [{ + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ +#include +#include + ],[[ +pollset_t ps = pollset_create(-1); + ]])], + [$1], [$2] + ) +}]) + dnl ################################################################################ dnl # LIBZMQ_CHECK_POLLER_POLL([action-if-found], [action-if-not-found]) # dnl # Checks poll polling system # @@ -908,7 +908,7 @@ AC_DEFUN([LIBZMQ_CHECK_POLLER], [{ # Allow user to override poller autodetection AC_ARG_WITH([poller], [AS_HELP_STRING([--with-poller], - [choose polling system manually. Valid values are 'kqueue', 'pollset', 'epoll', 'devpoll', 'poll', 'select', or 'auto'. [default=auto]])]) + [choose polling system manually. Valid values are 'kqueue', 'epoll', 'devpoll', 'pollset', 'poll', 'select', or 'auto'. [default=auto]])]) if test "x$with_poller" == "x"; then pollers=auto @@ -917,7 +917,7 @@ AC_DEFUN([LIBZMQ_CHECK_POLLER], [{ fi if test "$pollers" == "auto"; then # We search for pollers in this order - pollers="kqueue pollset epoll devpoll poll select" + pollers="kqueue epoll devpoll pollset poll select" fi # try to find suitable polling system. the order of testing is: @@ -932,13 +932,6 @@ AC_DEFUN([LIBZMQ_CHECK_POLLER], [{ poller_found=1 ]) ;; - pollset) - LIBZMQ_CHECK_POLLER_POLLSET([ - AC_MSG_NOTICE([Using 'pollset' polling system]) - AC_DEFINE(ZMQ_USE_POLLSET, 1, [Use 'pollset' polling system]) - poller_found=1 - ]) - ;; epoll) LIBZMQ_CHECK_POLLER_EPOLL([ AC_MSG_NOTICE([Using 'epoll' polling system]) @@ -953,6 +946,13 @@ AC_DEFUN([LIBZMQ_CHECK_POLLER], [{ poller_found=1 ]) ;; + pollset) + LIBZMQ_CHECK_POLLER_POLLSET([ + AC_MSG_NOTICE([Using 'pollset' polling system]) + AC_DEFINE(ZMQ_USE_POLLSET, 1, [Use 'pollset' polling system]) + poller_found=1 + ]) + ;; poll) LIBZMQ_CHECK_POLLER_POLL([ AC_MSG_NOTICE([Using 'poll' polling system])