File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -252,4 +252,19 @@ TEST(poller, poller_remove_invalid_socket_throws)
252
252
ASSERT_EQ (1u , poller.size ());
253
253
}
254
254
255
+ TEST (poller, wait_on_added_empty_handler)
256
+ {
257
+ zmq::context_t context;
258
+ zmq::socket_t vent{context, zmq::socket_type::push};
259
+ auto endpoint = loopback_ip4_binder (vent).endpoint ();
260
+
261
+ zmq::socket_t sink{context, zmq::socket_type::pull};
262
+ ASSERT_NO_THROW (sink.connect (endpoint));
263
+ ASSERT_NO_THROW (vent.send (" Hi" ));
264
+
265
+ zmq::poller_t poller;
266
+ std::function<void (void )> handler;
267
+ ASSERT_NO_THROW (poller.add (sink, ZMQ_POLLIN, handler));
268
+ ASSERT_NO_THROW (poller.wait (std::chrono::milliseconds{-1 }));
269
+ }
255
270
#endif
Original file line number Diff line number Diff line change @@ -1053,7 +1053,8 @@ namespace zmq
1053
1053
ZMQ_DEPRECATED (" from 4.3.0, use overload accepting handler_t instead" )
1054
1054
void add (zmq::socket_t &socket, short events, std::function<void (void )> &handler)
1055
1055
{
1056
- add (socket, events, [&handler](short ) { handler (); });
1056
+ add (socket, events, handler ? [&handler](short ) { handler (); }
1057
+ : handler_t {});
1057
1058
}
1058
1059
1059
1060
void add (zmq::socket_t &socket, short events, handler_t handler)
You can’t perform that action at this time.
0 commit comments