- if (FD_ISSET(fd, &input))
- mask += yaz_poll_read;
- if (FD_ISSET(fd, &output))
- mask += yaz_poll_write;
- if (FD_ISSET(fd, &except))
- mask += yaz_poll_except;
+ enum yaz_poll_mask mask = 0;
+ int fd = fds[i].fd;
+ if (!r)
+ mask += yaz_poll_timeout;
+ else
+ {
+ if (FD_ISSET(fd, &input))
+ mask += yaz_poll_read;
+ if (FD_ISSET(fd, &output))
+ mask += yaz_poll_write;
+ if (FD_ISSET(fd, &except))
+ mask += yaz_poll_except;
+ }
+ fds[i].output_mask = mask;