From 1ffc6dd41f2e2ce45c67f3fe08780c5a09cf667d Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Thu, 29 Apr 2010 18:03:54 +0200 Subject: eventfd-style signaling removed --- configure.in | 26 ------------------- src/signaler.cpp | 78 +------------------------------------------------------- src/signaler.hpp | 6 ----- 3 files changed, 1 insertion(+), 109 deletions(-) diff --git a/configure.in b/configure.in index b31f9d5..b95a367 100644 --- a/configure.in +++ b/configure.in @@ -228,32 +228,6 @@ AC_HEADER_STDC AC_CHECK_HEADERS(errno.h arpa/inet.h netinet/tcp.h netinet/in.h stddef.h \ stdlib.h string.h sys/socket.h sys/time.h unistd.h limits.h) -# Force not to use eventfd -AC_ARG_ENABLE([eventfd], [AS_HELP_STRING([--disable-eventfd], [disable eventfd [default=no]])], - [disable_eventfd=yes], [disable_eventfd=no]) - -eventfd_headers="no" -eventfd_can_run="no" - -if test "x$disable_eventfd" != "xyes"; then - # Check if we have eventfd.h header file. - AC_CHECK_HEADERS(sys/eventfd.h, [eventfd_headers=yes]) - - AC_MSG_CHECKING([for sys/eventfd.h functionality]) - - AC_RUN_IFELSE( - [AC_LANG_PROGRAM([[#include - #include ]], - [[int fd = eventfd (0, 0); assert (fd != -1);]])], - [eventfd_can_run=yes], [], eventfd_can_run=no) - - AC_MSG_RESULT([$eventfd_can_run]) - - if test "x$eventfd_headers" = "xyes" -a "x$eventfd_can_run" = "xyes"; then - AC_DEFINE(ZMQ_HAVE_EVENTFD, 1,[Have eventfd extension.]) - fi -fi - # Check if we have ifaddrs.h header file. AC_CHECK_HEADERS(ifaddrs.h, [AC_DEFINE(ZMQ_HAVE_IFADDRS, 1, [Have ifaddrs.h header.])]) diff --git a/src/signaler.cpp b/src/signaler.cpp index a98f1fe..1d3b32f 100644 --- a/src/signaler.cpp +++ b/src/signaler.cpp @@ -32,83 +32,7 @@ #include #endif -#if defined ZMQ_HAVE_EVENTFD - -#include - -zmq::signaler_t::signaler_t () -{ - // Create eventfd object. - fd = eventfd (0, 0); - errno_assert (fd != -1); - - // Set to non-blocking mode. - int flags = fcntl (fd, F_GETFL, 0); - if (flags == -1) - flags = 0; - int rc = fcntl (fd, F_SETFL, flags | O_NONBLOCK); - errno_assert (rc != -1); -} - -zmq::signaler_t::~signaler_t () -{ - int rc = close (fd); - errno_assert (rc != -1); -} - -void zmq::signaler_t::signal (int signal_) -{ - zmq_assert (signal_ >= 0 && signal_ < 64); - uint64_t inc = 1; - inc <<= signal_; - ssize_t sz = write (fd, &inc, sizeof (uint64_t)); - errno_assert (sz == sizeof (uint64_t)); -} - -uint64_t zmq::signaler_t::poll () -{ - // Set to blocking mode. - int flags = fcntl (fd, F_GETFL, 0); - if (flags == -1) - flags = 0; - int rc = fcntl (fd, F_SETFL, flags & ~O_NONBLOCK); - errno_assert (rc != -1); - - uint64_t signals; - ssize_t sz; - while (true) { - sz = read (fd, &signals, sizeof (uint64_t)); - if (sz == -1) { - if (errno == EAGAIN || errno == EINTR) - continue; - errno_assert (false); - } - break; - } - - // Set to non-blocking mode. - rc = fcntl (fd, F_SETFL, flags | O_NONBLOCK); - errno_assert (rc != -1); - - return signals; -} - -uint64_t zmq::signaler_t::check () -{ - uint64_t signals; - ssize_t sz = read (fd, &signals, sizeof (uint64_t)); - if (sz == -1 && (errno == EAGAIN || errno == EINTR)) - return 0; - errno_assert (sz != -1); - return signals; -} - -zmq::fd_t zmq::signaler_t::get_fd () -{ - return fd; -} - -#elif defined ZMQ_HAVE_WINDOWS +#if defined ZMQ_HAVE_WINDOWS zmq::signaler_t::signaler_t () { diff --git a/src/signaler.hpp b/src/signaler.hpp index 29f2ff6..f239771 100644 --- a/src/signaler.hpp +++ b/src/signaler.hpp @@ -58,17 +58,11 @@ namespace zmq // meantime, we'll create the socket pair manually. static int socketpair (int domain_, int type_, int protocol_, int sv_ [2]); - #endif -#if defined ZMQ_HAVE_EVENTFD - // Eventfd descriptor. - fd_t fd; -#else // Write & read end of the socketpair. fd_t w; fd_t r; -#endif // Disable copying of fd_signeler object. signaler_t (const signaler_t&); -- cgit v1.2.3