@@ -299,71 +299,78 @@ class error_t : public std::exception
299299 int errnum;
300300};
301301
302+ namespace detail {
303+ inline int poll (zmq_pollitem_t *items_, size_t nitems_, long timeout_)
304+ {
305+ int rc = zmq_poll (items_, static_cast <int >(nitems_), timeout_);
306+ if (rc < 0 )
307+ throw error_t ();
308+ return rc;
309+ }
310+ }
311+
302312#ifdef ZMQ_CPP11
303313ZMQ_DEPRECATED (" from 4.8.0, use poll taking std::chrono::duration instead of long" )
304314inline int poll(zmq_pollitem_t *items_, size_t nitems_, long timeout_)
305315#else
306316inline int poll (zmq_pollitem_t *items_, size_t nitems_, long timeout_ = -1 )
307317#endif
308318{
309- int rc = zmq_poll (items_, static_cast <int >(nitems_), timeout_);
310- if (rc < 0 )
311- throw error_t ();
312- return rc;
319+ return detail::poll (items_, nitems_, timeout_);
313320}
314321
315322ZMQ_DEPRECATED (" from 4.3.1, use poll taking non-const items" )
316323inline int poll(zmq_pollitem_t const *items_, size_t nitems_, long timeout_ = -1 )
317324{
318- return poll (const_cast <zmq_pollitem_t *>(items_), nitems_, timeout_);
325+ return detail:: poll (const_cast <zmq_pollitem_t *>(items_), nitems_, timeout_);
319326}
320327
321328#ifdef ZMQ_CPP11
322329ZMQ_DEPRECATED (" from 4.3.1, use poll taking non-const items" )
323330inline int
324331poll(zmq_pollitem_t const *items, size_t nitems, std::chrono::milliseconds timeout)
325332{
326- return poll (const_cast <zmq_pollitem_t *>(items), nitems,
333+ return detail:: poll (const_cast <zmq_pollitem_t *>(items), nitems,
327334 static_cast <long >(timeout.count ()));
328335}
329336
330337ZMQ_DEPRECATED (" from 4.3.1, use poll taking non-const items" )
331338inline int poll(std::vector<zmq_pollitem_t > const &items,
332339 std::chrono::milliseconds timeout)
333340{
334- return poll (const_cast <zmq_pollitem_t *>(items.data ()), items.size (),
341+ return detail:: poll (const_cast <zmq_pollitem_t *>(items.data ()), items.size (),
335342 static_cast <long >(timeout.count ()));
336343}
337344
338345ZMQ_DEPRECATED (" from 4.3.1, use poll taking non-const items" )
339346inline int poll(std::vector<zmq_pollitem_t > const &items, long timeout_ = -1 )
340347{
341- return poll (const_cast <zmq_pollitem_t *>(items.data ()), items.size (), timeout_);
348+ return detail:: poll (const_cast <zmq_pollitem_t *>(items.data ()), items.size (), timeout_);
342349}
343350
344351inline int
345352poll (zmq_pollitem_t *items, size_t nitems, std::chrono::milliseconds timeout = std::chrono::milliseconds{-1 })
346353{
347- return poll (items, nitems, static_cast <long >(timeout.count ()));
354+ return detail:: poll (items, nitems, static_cast <long >(timeout.count ()));
348355}
349356
350357inline int poll (std::vector<zmq_pollitem_t > &items,
351358 std::chrono::milliseconds timeout = std::chrono::milliseconds{-1 })
352359{
353- return poll (items.data (), items.size (), static_cast <long >(timeout.count ()));
360+ return detail:: poll (items.data (), items.size (), static_cast <long >(timeout.count ()));
354361}
355362
356363ZMQ_DEPRECATED (" from 4.3.1, use poll taking std::chrono::duration instead of long" )
357364inline int poll(std::vector<zmq_pollitem_t > &items, long timeout_)
358365{
359- return poll (items.data (), items.size (), timeout_);
366+ return detail:: poll (items.data (), items.size (), timeout_);
360367}
361368
362369template <std::size_t SIZE>
363370inline int poll (std::array<zmq_pollitem_t , SIZE> &items,
364- std::chrono::milliseconds timeout)
371+ std::chrono::milliseconds timeout = std::chrono::milliseconds{- 1 } )
365372{
366- return poll (items.data (), items.size (), static_cast <long >(timeout.count ()));
373+ return detail:: poll (items.data (), items.size (), static_cast <long >(timeout.count ()));
367374}
368375#endif
369376
@@ -2327,7 +2334,11 @@ class monitor_t
23272334 {_monitor_socket.handle (), 0 , ZMQ_POLLIN, 0 },
23282335 };
23292336
2337+ #ifdef ZMQ_CPP11
2338+ zmq::poll (&items[0 ], 1 , std::chrono::milliseconds (timeout));
2339+ #else
23302340 zmq::poll (&items[0 ], 1 , timeout);
2341+ #endif
23312342
23322343 if (items[0 ].revents & ZMQ_POLLIN) {
23332344 int rc = zmq_msg_recv (eventMsg.handle (), _monitor_socket.handle (), 0 );
0 commit comments