- if (gfds[i].events & (G_IO_IN | G_IO_OUT | G_IO_PRI))
- {
- int fd = gfds[i].fd;
- for (; all_lim <= fd; all_lim++)
- {
- FD_CLR (all_lim, &all_rfds);
- FD_CLR (all_lim, &all_wfds);
- FD_CLR (all_lim, &all_efds);
- }
- if (gfds[i].events & G_IO_IN)
- FD_SET (fd, &all_rfds);
- if (gfds[i].events & G_IO_OUT)
- FD_SET (fd, &all_wfds);
- if (gfds[i].events & G_IO_PRI)
- FD_SET (fd, &all_efds);
- }
+ {
+ if (gfds[i].events & G_IO_IN)
+ {
+ FD_SET (gfds[i].fd, &all_rfds);
+ if (gfds[i].fd > max_fds) max_fds = gfds[i].fd;
+ }
+ if (gfds[i].events & G_IO_OUT)
+ {
+ FD_SET (gfds[i].fd, &all_wfds);
+ if (gfds[i].fd > max_fds) max_fds = gfds[i].fd;
+ have_wfds = 1;
+ }
+ }