59unsigned int ZMQParent::poll(
const std::vector<zmq::socket_t*>& socketList,
int timeout)
61 B2ASSERT(
"Only allow to poll on maximal 8 sockets at the same time!", socketList.size() <= 8);
62 std::vector<zmq::pollitem_t> items(socketList.size());
64 for (
unsigned int i = 0; i < socketList.size(); i++) {
65 items[i].socket =
static_cast<void*
>(*socketList[i]);
66 items[i].events = ZMQ_POLLIN;
71 zmq::poll(items.data(), socketList.size(), timeout);
72 std::bitset<8> return_bitmask;
74 for (
unsigned int i = 0; i < socketList.size(); i++) {
75 return_bitmask[i] =
static_cast<bool>(items[i].revents & ZMQ_POLLIN);
77 return return_bitmask.to_ulong();
78 }
catch (zmq::error_t& error) {
79 if (error.num() == EINTR) {