- fdlist.clear();
-#ifdef USE_SELECT
- FD_ZERO(&wfdset);
- FD_ZERO(&rfdset);
- timeval tval;
- int sresult;
- for (unsigned int a = 0; a < fds.size(); a++)
- {
- if (ref[fds[a]] & X_READBIT)
- {
- log(DEBUG,"Adding readable %d",fds[a]);
- FD_SET (fds[a], &rfdset);
- }
- else
- {
- log(DEBUG,"Adding writeable %d",fds[a]);
- FD_SET (fds[a], &wfdset);
- }
-
- }
- tval.tv_sec = 0;
- tval.tv_usec = 1000L;
- sresult = select(FD_SETSIZE, &rfdset, &wfdset, NULL, &tval);
- if (sresult > 0)
- {
- for (unsigned int a = 0; a < fds.size(); a++)
- {
- if ((FD_ISSET (fds[a], &rfdset)) || (FD_ISSET (fds[a], &wfdset)))
- {
- log(DEBUG,"...Adding active %d",fds[a]);
- fdlist.push_back(fds[a]);
- }
- }
- }
-#endif
-#ifdef USE_KQUEUE
- ts.tv_nsec = 1000L;
- ts.tv_sec = 0;
- int i = kevent(EngineHandle, NULL, 0, &ke_list[0], 65535, &ts);
- for (int j = 0; j < i; j++)
- fdlist.push_back(ke_list[j].ident);
-#endif
-#ifdef USE_EPOLL
- int i = epoll_wait(EngineHandle, events, 65535, 1);
- for (int j = 0; j < i; j++)
- fdlist.push_back(events[j].data.fd);
-#endif