- n_waiters = list_size(&waiters);
- if (max_pollfds < n_waiters) {
- max_pollfds = n_waiters;
- pollfds = xrealloc(pollfds, max_pollfds * sizeof *pollfds);
- }
-
- n_pollfds = 0;
- LIST_FOR_EACH (pw, node, &waiters) {
- pw->pollfd = &pollfds[n_pollfds];
- pollfds[n_pollfds].fd = pw->fd;
- pollfds[n_pollfds].events = pw->events;
- pollfds[n_pollfds].revents = 0;
- n_pollfds++;
- }
-
- if (!timeout) {