diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/zmq.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/zmq.cpp b/src/zmq.cpp index ca9a970..7ff1e52 100644 --- a/src/zmq.cpp +++ b/src/zmq.cpp @@ -405,9 +405,14 @@ int zmq_poll (zmq_pollitem_t *items_, int nitems_, long timeout_) // If the poll item is a raw file descriptor, simply convert // the events to zmq_pollitem_t-style format. if (!items_ [i].socket) { - items_ [i].revents = - (pollfds [pollfd_pos].revents & POLLIN ? ZMQ_POLLIN : 0) | - (pollfds [pollfd_pos].revents & POLLOUT ? ZMQ_POLLOUT : 0); + items_ [i].revents = 0; + if (pollfds [pollfd_pos].revents & POLLIN) + items_ [i].revents |= ZMQ_POLLIN; + if (pollfds [pollfd_pos].revents & POLLOUT) + items_ [i].revents |= ZMQ_POLLOUT; + if (pollfds [pollfd_pos].revents & ~(POLLIN | POLLOUT)) + items_ [i].revents |= ZMQ_POLLERR; + if (items_ [i].revents) nevents++; pollfd_pos++; |