首页 > 解决方案 > 可以直接访问 epoll 兴趣列表(又名兴趣集)吗?

问题描述

我是 epoll 的新手。epoll 的手册页提到了一个兴趣列表(又名 epoll 集),它是就绪集的超集。如果你想通过添加新的 epoll 事件、删除旧的 epoll 事件或修改现有的 epoll 事件来修改兴趣列表,似乎可以使用epoll_ctl(). 如果您想阅读当前的就绪集,似乎可以使用epoll_wait(). 有没有办法访问兴趣列表?我正在寻找行为类似的东西,epoll_wait()它会为您提供所有 epoll 事件的列表。

语境:

我的系统课让我们使用 epoll 到 I/O 多路复用,他们将使用 valgrind 来检查泄漏。我使用该epoll_event.data.ptr字段指向我在堆上 malloc 的结构。当程序收到终止信号时,我需要释放所有这些。我认识到我可以在我身边创建一个活动的 epoll_events 列表,但我只是想确保在我这样做之前我没有重新发明轮子。

标签: clinuxepoll

解决方案


你不是在重新发明轮子。在您自己的代码中跟踪您的代码正在处理的所有连接是正确的方法。


推荐阅读