2016-11-25 4 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