通过使用libevent-2.x,有一个选项EV_TIMEOUT
可以标记特定的超时fd
:
event_set(&ev, fd, EV_READ | EV_TIMEOUT, worker, priv_data);
通过将超时设置为 5 分钟,fd 将被服务器设置为超时。我需要priv_data
在服务器端释放或做一些统计的提示,有没有办法fd
只通过设置EV_TIMEOUT
选项(例如回调)来找到超时?
通过使用libevent-2.x,有一个选项EV_TIMEOUT
可以标记特定的超时fd
:
event_set(&ev, fd, EV_READ | EV_TIMEOUT, worker, priv_data);
通过将超时设置为 5 分钟,fd 将被服务器设置为超时。我需要priv_data
在服务器端释放或做一些统计的提示,有没有办法fd
只通过设置EV_TIMEOUT
选项(例如回调)来找到超时?
我不确定我是否理解您问题的这一部分“仅通过设置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