@@ -299,66 +299,78 @@ class error_t : public std::exception
299299 int errnum;
300300};
301301
302- inline int poll (zmq_pollitem_t *items_, size_t nitems_, long timeout_ = -1 )
302+ namespace detail {
303+ inline int poll (zmq_pollitem_t *items_, size_t nitems_, long timeout_)
303304{
304305 int rc = zmq_poll (items_, static_cast <int >(nitems_), timeout_);
305306 if (rc < 0 )
306307 throw error_t ();
307308 return rc;
308309}
310+ }
311+
312+ #ifdef ZMQ_CPP11
313+ ZMQ_DEPRECATED (" from 4.8.0, use poll taking std::chrono::duration instead of long" )
314+ inline int poll(zmq_pollitem_t *items_, size_t nitems_, long timeout_)
315+ #else
316+ inline int poll (zmq_pollitem_t *items_, size_t nitems_, long timeout_ = -1 )
317+ #endif
318+ {
319+ return detail::poll (items_, nitems_, timeout_);
320+ }
309321
310322ZMQ_DEPRECATED (" from 4.3.1, use poll taking non-const items" )
311323inline int poll(zmq_pollitem_t const *items_, size_t nitems_, long timeout_ = -1 )
312324{
313- return poll (const_cast <zmq_pollitem_t *>(items_), nitems_, timeout_);
325+ return detail:: poll (const_cast <zmq_pollitem_t *>(items_), nitems_, timeout_);
314326}
315327
316328#ifdef ZMQ_CPP11
317329ZMQ_DEPRECATED (" from 4.3.1, use poll taking non-const items" )
318330inline int
319331poll(zmq_pollitem_t const *items, size_t nitems, std::chrono::milliseconds timeout)
320332{
321- return poll (const_cast <zmq_pollitem_t *>(items), nitems,
333+ return detail:: poll (const_cast <zmq_pollitem_t *>(items), nitems,
322334 static_cast <long >(timeout.count ()));
323335}
324336
325337ZMQ_DEPRECATED (" from 4.3.1, use poll taking non-const items" )
326338inline int poll(std::vector<zmq_pollitem_t > const &items,
327339 std::chrono::milliseconds timeout)
328340{
329- return poll (const_cast <zmq_pollitem_t *>(items.data ()), items.size (),
341+ return detail:: poll (const_cast <zmq_pollitem_t *>(items.data ()), items.size (),
330342 static_cast <long >(timeout.count ()));
331343}
332344
333345ZMQ_DEPRECATED (" from 4.3.1, use poll taking non-const items" )
334346inline int poll(std::vector<zmq_pollitem_t > const &items, long timeout_ = -1 )
335347{
336- 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_);
337349}
338350
339351inline int
340- poll (zmq_pollitem_t *items, size_t nitems, std::chrono::milliseconds timeout)
352+ poll (zmq_pollitem_t *items, size_t nitems, std::chrono::milliseconds timeout = std::chrono::milliseconds{- 1 } )
341353{
342- return poll (items, nitems, static_cast <long >(timeout.count ()));
354+ return detail:: poll (items, nitems, static_cast <long >(timeout.count ()));
343355}
344356
345357inline int poll (std::vector<zmq_pollitem_t > &items,
346- std::chrono::milliseconds timeout)
358+ std::chrono::milliseconds timeout = std::chrono::milliseconds{- 1 } )
347359{
348- return poll (items.data (), items.size (), static_cast <long >(timeout.count ()));
360+ return detail:: poll (items.data (), items.size (), static_cast <long >(timeout.count ()));
349361}
350362
351- ZMQ_DEPRECATED (" from 4.3.1, use poll taking std::chrono instead of long" )
352- inline int poll(std::vector<zmq_pollitem_t > &items, long timeout_ = - 1 )
363+ ZMQ_DEPRECATED (" from 4.3.1, use poll taking std::chrono::duration instead of long" )
364+ inline int poll(std::vector<zmq_pollitem_t > &items, long timeout_)
353365{
354- return poll (items.data (), items.size (), timeout_);
366+ return detail:: poll (items.data (), items.size (), timeout_);
355367}
356368
357369template <std::size_t SIZE>
358370inline int poll (std::array<zmq_pollitem_t , SIZE> &items,
359- std::chrono::milliseconds timeout)
371+ std::chrono::milliseconds timeout = std::chrono::milliseconds{- 1 } )
360372{
361- return poll (items.data (), items.size (), static_cast <long >(timeout.count ()));
373+ return detail:: poll (items.data (), items.size (), static_cast <long >(timeout.count ()));
362374}
363375#endif
364376
@@ -2322,7 +2334,11 @@ class monitor_t
23222334 {_monitor_socket.handle (), 0 , ZMQ_POLLIN, 0 },
23232335 };
23242336
2337+ #ifdef ZMQ_CPP11
2338+ zmq::poll (&items[0 ], 1 , std::chrono::milliseconds (timeout));
2339+ #else
23252340 zmq::poll (&items[0 ], 1 , timeout);
2341+ #endif
23262342
23272343 if (items[0 ].revents & ZMQ_POLLIN) {
23282344 int rc = zmq_msg_recv (eventMsg.handle (), _monitor_socket.handle (), 0 );
0 commit comments