diff options
Diffstat (limited to 'init/epoll.h')
-rw-r--r-- | init/epoll.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/init/epoll.h b/init/epoll.h index c32a6614f..0df528935 100644 --- a/init/epoll.h +++ b/init/epoll.h @@ -22,6 +22,7 @@ #include <chrono> #include <functional> #include <map> +#include <memory> #include <optional> #include <vector> @@ -36,15 +37,17 @@ class Epoll { public: Epoll(); + typedef std::function<void()> Handler; + Result<void> Open(); - Result<void> RegisterHandler(int fd, std::function<void()> handler, uint32_t events = EPOLLIN); + Result<void> RegisterHandler(int fd, Handler handler, uint32_t events = EPOLLIN); Result<void> UnregisterHandler(int fd); - Result<std::vector<std::function<void()>*>> Wait( + Result<std::vector<std::shared_ptr<Handler>>> Wait( std::optional<std::chrono::milliseconds> timeout); private: android::base::unique_fd epoll_fd_; - std::map<int, std::function<void()>> epoll_handlers_; + std::map<int, std::shared_ptr<Handler>> epoll_handlers_; }; } // namespace init |