2

假设我在某个函数中使用 epoll_ctl 注册了有限数量的事件。现在,在对同一个函数的重复调用中,我使用以下方法一次取消注册这些事件中的每一个:

epoll_ctl(epfd, EPOLL_CTL_DEL, fd, event);

我如何知道所有已注册的实例何时已注销?我需要为此维护一个单独的列表吗?

编辑:

我想我需要为我的问题添加更多上下文。假设我能够检测到没有注册事件,那么我需要在上面提到的同一函数中执行某个其他基本任务,而不是 epoll_wait()。

4

1 回答 1

0

是的,您需要考虑您的文件描述符。

如果你想注销所有事件,你可以直接关闭 epoll fd,让内核释放整个数据结构(我没有尝试过,但我敢打赌这个解决方案也更快)。

于 2013-04-16T07:38:42.127 回答