draft impl of epoll