- SelectAIO();
- ~SelectAIO();
- void watch_fd(int fd, poll_flag flag);
- bool unwatch_fd(int fd, poll_flag flag);
- bool is_watched(int fd, poll_flag flag);
- void wait_ready(vector<int> *readable, vector<int> *writable);
-
- private:
-
- fd_set rfds_;
- fd_set wfds_;
- int highfds_;
- int pipefd_[2];
-
- mutex m_;
-
-};
-
-#ifdef __linux__
-class EPollAIO : public aio_mgr {
- public:
- EPollAIO();
- ~EPollAIO();
- void watch_fd(int fd, poll_flag flag);
- bool unwatch_fd(int fd, poll_flag flag);
- bool is_watched(int fd, poll_flag flag);
- void wait_ready(vector<int> *readable, vector<int> *writable);
-
- private:
- int pollfd_;
- struct epoll_event ready_[MAX_POLL_FDS];
- int fdstatus_[MAX_POLL_FDS];
+ map<int, aio_callback *> callbacks_;
+ class wait_manager *aio_;
+ bool pending_change_=false, shutdown_=false;