2016-11-25 64 views
3

假設我有2個我正在觀看事件的套接字,並且我確實希望套接字1是首選(即使以套接字2爲限)。我怎麼會用libev做到這一點(我問了關於libuv here的同樣的問題,但它看起來像libuv不能這樣做)?你可以優先解放libev中的事件嗎?

舉個例子與libevent的工作可以使用的時候:

int event_priority_set(struct event *event, int priority);

當多個優先級的多個事件變得活躍, 低優先級事件不運行。相反,Libevent運行高優先級事件,然後再次檢查事件。只有當沒有 高優先級事件處於活動狀態時,纔會運行低優先級事件。

回答

2

檢查libev功能ev_set_priority()

ev_set_priority (ev_TYPE *watcher, int priority) 

設置和查詢觀察者的優先級。優先級是EV_MAXPRI(默認值:2)和EV_MINPRI(默認值:-2)之間的小整數。具有較高優先級的待定觀察者將在具有較低優先級的觀察者之前被調用,但是優先級不會保持觀察者不被執行(除了ev_idle觀察者)。

http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#GENERIC_WATCHER_FUNCTIONS