static ssize_t recvObjects(const sp
return recvObjects(tube, events, count, sizeof(T)); }
ssize_t BitTube::recvObjects(const sp
ssize_t numObjects = 0;
for (size_t i=0 ; i char* vaddr = reinterpret_cast // error occurred return size; } else if (size == 0) { // no more messages break; } numObjects++; } return numObjects; } ssize_t BitTube::read(void* vaddr, size_t size) { ssize_t err, len; do { len = ::recv(mReceiveFd, vaddr, size, MSG_DONTWAIT); err = len < 0 ? errno : 0; } while (err == EINTR); if (err == EAGAIN || err == EWOULDBLOCK) { return 0; } return err == 0 ? len : -err; } View Code