我是epoll的新手。 epoll的手册页中提到了一个兴趣列表(也称为epoll集),它是现成列表的超集。如果要通过添加新的epoll事件,删除旧的epoll事件或修改现有的epoll事件来修改兴趣列表,似乎可以使用epoll_ctl()
。如果您想读取当前的就绪集,似乎可以使用epoll_wait()
。有没有办法访问兴趣列表?我正在寻找一种行为类似于epoll_wait()
的东西,因为它将为您提供所有epoll事件的列表。
上下文:
我的系统类让我们使用epoll进行I / O复用,并且他们将使用valgrind检查泄漏。我使用epoll_event.data.ptr
字段指向我已经在堆上分配的结构。当程序发送信号终止时,我需要释放所有这些。我知道我可以自己创建一个活动的epoll_events列表,但是我只想确保自己在开始之前不会重新发明轮子。
答案 0 :(得分:2)
您不是要重新发明轮子。在您自己的代码中跟踪代码正在处理的所有连接是正确的方法。