mirror of
https://github.com/zeromq/cppzmq.git
synced 2024-12-13 10:52:57 +01:00
Problem: poller_t::wait_all and active_poller_t::wait declare int return type but actually return an element count
Solution: change return type to size_t, remove a redundant if in consequence
This commit is contained in:
parent
bc82352c95
commit
65ae6b33fd
4
zmq.hpp
4
zmq.hpp
@ -1091,14 +1091,14 @@ template <typename T = void> class poller_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int wait_all (std::vector<zmq_poller_event_t> &poller_events,
|
size_t wait_all (std::vector<zmq_poller_event_t> &poller_events,
|
||||||
const std::chrono::microseconds timeout)
|
const std::chrono::microseconds timeout)
|
||||||
{
|
{
|
||||||
int rc = zmq_poller_wait_all (poller_ptr.get (), poller_events.data (),
|
int rc = zmq_poller_wait_all (poller_ptr.get (), poller_events.data (),
|
||||||
static_cast<int> (poller_events.size ()),
|
static_cast<int> (poller_events.size ()),
|
||||||
static_cast<long> (timeout.count ()));
|
static_cast<long> (timeout.count ()));
|
||||||
if (rc > 0)
|
if (rc > 0)
|
||||||
return rc;
|
return static_cast<size_t> (rc);
|
||||||
|
|
||||||
#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 3)
|
#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 3)
|
||||||
if (zmq_errno () == EAGAIN)
|
if (zmq_errno () == EAGAIN)
|
||||||
|
@ -398,7 +398,7 @@ class active_poller_t
|
|||||||
base_poller.modify (socket, events);
|
base_poller.modify (socket, events);
|
||||||
}
|
}
|
||||||
|
|
||||||
int wait (std::chrono::milliseconds timeout)
|
size_t wait (std::chrono::milliseconds timeout)
|
||||||
{
|
{
|
||||||
if (need_rebuild) {
|
if (need_rebuild) {
|
||||||
poller_events.resize (handlers.size ());
|
poller_events.resize (handlers.size ());
|
||||||
@ -409,16 +409,13 @@ class active_poller_t
|
|||||||
}
|
}
|
||||||
need_rebuild = false;
|
need_rebuild = false;
|
||||||
}
|
}
|
||||||
const int count = base_poller.wait_all (poller_events, timeout);
|
const auto count = base_poller.wait_all (poller_events, timeout);
|
||||||
if (count != 0) {
|
std::for_each (poller_events.begin (), poller_events.begin () + count,
|
||||||
std::for_each (poller_events.begin (),
|
|
||||||
poller_events.begin () + count,
|
|
||||||
[](zmq_poller_event_t &event) {
|
[](zmq_poller_event_t &event) {
|
||||||
if (event.user_data != NULL)
|
if (event.user_data != NULL)
|
||||||
(*reinterpret_cast<handler_t *> (
|
(*reinterpret_cast<handler_t *> (
|
||||||
event.user_data)) (event.events);
|
event.user_data)) (event.events);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user