- size_t i;
- int ret;
- int num_fds = 0;
- struct yaz_poll_fd *fds;
- struct socket_chan *chan = p->chan_list;
- for (chan = p->chan_list; chan; chan = chan->next)
- num_fds++;
- fds = xmalloc(num_fds * sizeof(*fds));
- for (i = 0, chan = p->chan_list; chan; chan = chan->next)
- {
- fds[i].input_mask = chan->mask;
- fds[i].fd = chan->fd;
- fds[i].client_data = chan;
- }
- ret = yaz_poll(fds, num_fds, 0, 0);
- if (ret == -1)
- {
- yaz_log(YLOG_WARN, "yaz_poll error");
- }
- else if (ret == 0)
- {
- yaz_log(YLOG_LOG, "yaz_poll timeout");
- }
- else
- {
- for (i = 0, chan = p->chan_list; chan; chan = chan->next)
- {
- if (fds[i].output_mask)
- {
- yaz_log(YLOG_LOG, "event on chan=%p", chan);
- }
- }
- }
- xfree(fds);