Commit f8816945 authored by Jim Klimov's avatar Jim Klimov

Problem: polling does not work well OOB in OpenIndiana

Solution: even though epoll() semantics are supported in modern illumos, it may differ from what Linux developers are used to expect. Skip epoll and use poll or select semantics (both were checked to work well).
parent e56bc48e
...@@ -986,18 +986,29 @@ AC_DEFUN([LIBZMQ_CHECK_POLLER], [{ ...@@ -986,18 +986,29 @@ AC_DEFUN([LIBZMQ_CHECK_POLLER], [{
]) ])
;; ;;
epoll) epoll)
LIBZMQ_CHECK_POLLER_EPOLL_CLOEXEC([ case "$host_os" in
AC_MSG_NOTICE([Using 'epoll' polling system with CLOEXEC]) solaris*|sunos*)
AC_DEFINE(ZMQ_USE_EPOLL, 1, [Use 'epoll' polling system]) # Recent illumos and Solaris systems did add epoll()
AC_DEFINE(ZMQ_USE_EPOLL_CLOEXEC, 1, [Use 'epoll' polling system with CLOEXEC]) # syntax, but it does not fully satisfy expectations
poller_found=1 # that ZMQ has from Linux systems. Unless you undertake
],[ # to fix the integration, do not disable this exception
LIBZMQ_CHECK_POLLER_EPOLL([ # and use select() or poll() on Solarish OSes for now.
AC_MSG_NOTICE([Using 'epoll' polling system with CLOEXEC]) AC_MSG_NOTICE([NOT using 'epoll' polling system on '$host_os']) ;;
AC_DEFINE(ZMQ_USE_EPOLL, 1, [Use 'epoll' polling system]) *)
poller_found=1 LIBZMQ_CHECK_POLLER_EPOLL_CLOEXEC([
]) AC_MSG_NOTICE([Using 'epoll' polling system with CLOEXEC])
]) AC_DEFINE(ZMQ_USE_EPOLL, 1, [Use 'epoll' polling system])
AC_DEFINE(ZMQ_USE_EPOLL_CLOEXEC, 1, [Use 'epoll' polling system with CLOEXEC])
poller_found=1
],[
LIBZMQ_CHECK_POLLER_EPOLL([
AC_MSG_NOTICE([Using 'epoll' polling system with CLOEXEC])
AC_DEFINE(ZMQ_USE_EPOLL, 1, [Use 'epoll' polling system])
poller_found=1
])
])
;;
esac
;; ;;
devpoll) devpoll)
LIBZMQ_CHECK_POLLER_DEVPOLL([ LIBZMQ_CHECK_POLLER_DEVPOLL([
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment