如何使用创建延迟执行代码或超时事件epoll
?libevent 和 libev 都有这个功能,但我不知道如何使用 epoll 来做到这一点。
目前主循环如下所示:
epoll_ctl(epfd, EPOLL_CTL_ADD, client_sock_fd, &epev);
while(1) {
int nfds = epoll_wait(epfd, &epev, 1, 10);
if (nfds < 0) exit(EXIT_FAILURE);
if (nfds > 0) {
// If an event has been recieved
}
// Do this every 10ms
}
我很清楚,这个功能可以通过简单地添加已经过去的时间来实现,但使用 epoll 似乎是一个更清洁的解决方案。