#ifndef pollmgr_h
#define pollmgr_h
+#include "types.h"
#include <sys/select.h>
-#include <vector>
#ifdef __linux__
#include <sys/epoll.h>
virtual void watch_fd(int fd, poll_flag flag) = 0;
virtual bool unwatch_fd(int fd, poll_flag flag) = 0;
virtual bool is_watched(int fd, poll_flag flag) = 0;
- virtual void wait_ready(std::vector<int> *readable, std::vector<int> *writable) = 0;
+ virtual void wait_ready(vector<int> *readable, vector<int> *writable) = 0;
virtual ~aio_mgr() {}
};
static int useless;
private:
- pthread_mutex_t m_;
- pthread_cond_t changedone_c_;
- pthread_t th_;
+ mutex m_;
+ cond changedone_c_;
+ thread th_;
aio_callback *callbacks_[MAX_POLL_FDS];
aio_mgr *aio_;
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(std::vector<int> *readable, std::vector<int> *writable);
+ void wait_ready(vector<int> *readable, vector<int> *writable);
private:
int highfds_;
int pipefd_[2];
- pthread_mutex_t m_;
+ mutex m_;
};
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(std::vector<int> *readable, std::vector<int> *writable);
+ void wait_ready(vector<int> *readable, vector<int> *writable);
private:
int pollfd_;