有没有办法在libevent中找到有时间的fd?

时间:2013-08-26 01:43:26

标签: libevent

使用 libevent-2.x ,有一个选项EV_TIMEOUT标记特定fd的超时:

event_set(&ev, fd, EV_READ | EV_TIMEOUT, worker, priv_data);

通过将超时设置为5分钟,服务器将fd设置为超时。我需要提示释放priv_data或在服务器端执行某些统计,是否有办法仅通过设置fd选项(例如,回调)来查找超时EV_TIMEOUT

1 个答案:

答案 0 :(得分:2)

我不确定我是否只是通过设置EV_TIMEOUT选项来理解你问题的这一部分。其余部分,我想我能够为你回答。

有一种方法可以检查超时事件是否导致事件返回回调。

假设你的回调原型看起来像这样

(evutil_socket_t fd, short what, void *arg)

然后,您可以通过fd

检查(what&EV_TIMEOUT)的超时时间

相关类型在<event2/event.h>中定义。

如果这不能回答您的问题,您可以在此处找到大量相关信息,例如:http://www.wangafu.net/~nickm/libevent-book/Ref4_event.html