假设我在某个函数中使用epoll_ctl注册了有限数量的事件。现在,通过重复调用同一个函数,我使用以下方法一次注销这些事件中的每一个:
epoll_ctl(epfd, EPOLL_CTL_DEL, fd, event);
如何取消注册所有已注册的实例? 我是否需要为此保留一个单独的列表?
修改
我想我需要在我的问题中添加更多上下文。假设我能够检测到没有注册事件,那么我需要在上面提到的相同函数中执行某个其他必要任务,而不是epoll_wait()。
答案 0 :(得分:0)
是的,您需要考虑您的文件描述符。
如果要取消所有事件,可能只需关闭epoll fd,让内核释放整个数据结构(我没试过,但我敢打赌这个解决方案是也更快)。