2013-08-26 41 views
1

通過使用libevent-2.x,有一個選項是EV_TIMEOUT標籤上的特定fd超時:有沒有辦法在libevent中找到超時的fd?

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

通過設置超時時間爲5分鐘,該FD將設置爲服務器超時。我需要提示來釋放priv_data或在服務器端做一些統計,是否有方法通過設置EV_TIMEOUT選項(例如,回調)來查找超時fd

回答

2

我不知道如果我只是通過設置EV_TIMEOUT選項理解你的問題」這一部分。它的其餘部分,我想我能爲你解答。

有一種方法你可以檢查,看看是否超時事件引起返回到回調的事件。

比方說,你的回調原型看起來像這樣

(evutil_socket_t fd, short what, void *arg)

然後你就可以檢查對T超時他fd通過這樣做:(what&EV_TIMEOUT)

相關的類型定義在<event2/event.h>

如果這個問題沒有回答你的問題,你可以在這裏找到很多相關信息,例如:http://www.wangafu.net/~nickm/libevent-book/Ref4_event.html

相關問題