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 --- src/signaler.cpp | 78 +------------------------------------------------------- 1 file changed, 1 insertion(+), 77 deletions(-) (limited to 'src/signaler.cpp') 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 () { -- cgit v1.2.3