Skip to content

Commit d9a0fde

Browse files
author
bjovke
committed
Allow for empty handler parameter (empty std::function()) in call to zmq::poller_t::add().
1 parent e84484c commit d9a0fde

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

zmq.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,7 @@ namespace zmq
847847

848848
bool add (zmq::socket_t &socket, short events, std::function<void(void)> &handler)
849849
{
850-
if (0 == zmq_poller_add (poller_ptr, socket.ptr, &handler, events)) {
850+
if (0 == zmq_poller_add (poller_ptr, socket.ptr, handler ? &handler : NULL, events)) {
851851
poller_events.emplace_back (zmq_poller_event_t ());
852852
return true;
853853
}
@@ -868,7 +868,7 @@ namespace zmq
868868
int rc = zmq_poller_wait_all (poller_ptr, poller_events.data (), poller_events.size (), static_cast<long>(timeout.count ()));
869869
if (rc >= 0) {
870870
std::for_each (poller_events.begin (), poller_events.begin () + rc, [](zmq_poller_event_t& event) {
871-
(*reinterpret_cast<std::function<void(void)>*> (event.user_data)) ();
871+
if (event.user_data != NULL) (*reinterpret_cast<std::function<void(void)>*> (event.user_data)) ();
872872
});
873873
return true;
874874
}

0 commit comments

Comments
 (0)