38os_fd_read(
int fd, uint8_t *data,
size_t size,
int milliseconds)
42 if (milliseconds >= 0) {
44 int timeout = milliseconds;
50 while ((ret = poll(&fds, 1, timeout)) < 0 && errno == EINTR) {
59 if (ret == -1 || ret == 0) {
63 if (fds.revents & (POLLERR | POLLHUP | POLLNVAL)) {
70 ret = read(fd, data, size);
71 }
while (ret < 0 && errno == EINTR);
73 if (ret < 0 && (errno == EAGAIN || errno == EINPROGRESS)) {
static ssize_t os_fd_read(int fd, uint8_t *data, size_t size, int milliseconds)
Waits up to milliseconds for fd to be readable, then reads from it.
Definition os_fd.h:38