2016-11-25 12 views
3

私は2つのソケットを持っているとします。私はイベントを見ていて、ソケット1を優先したいと思っています。 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

関連する問題