- struct pollfd pfd;
-
- pfd.fd = sk;
- pfd.events = POLLIN;
- ret = 0;
- do {
- int timeo = block ? 100 : 10;
-
- ret = poll(&pfd, 1, timeo);
- if (ret < 0) {
- if (errno == EINTR)
- break;
- log_err("fio: poll: %s\n", strerror(errno));
- break;
- } else if (!ret) {
- if (!block)
- return NULL;
- continue;
- }
-
- if (pfd.revents & POLLIN)
- break;
- if (pfd.revents & (POLLERR|POLLHUP)) {
- ret = 1;
- break;
- }
- } while (ret >= 0 && block);
-
- if (ret < 0)
- break;
-