我对 libevent 事件优先级有一些疑问
1 什么是优先编号范围?
2 在手册中,它说By default, libevent assigns the middle priority to all events unless their priority is explicitly set.
确切的默认优先级编号是多少?
3 优先级越高,数字越小还是越大?
4 libevent中有两个与事件优先级相关的函数。
event_priority_init()
并且event_priority_set
,它们之间有什么区别?
5 event_priority_set(struct event *ev, int pri) 的返回值是什么?我注意到一篇文章说类似:when an event is ready, it can't be set and calling of this function returns -1
. 我真的不明白这是什么意思?谁能解释一下?谢谢!
6 注册后可以修改事件优先级吗?比如一开始我设置优先级为10,后来我设置为5,然后我设置为10,blalba
顺便说一句:目前,我的 base = event_init(); event_base_priority_init(base, 4);
event_set(ev, sockfd, EV_READ, callback, arg);
event_base_set(base, ev);
event_add(ev, NULL);
event_priority_set(&ev, 2);
.....
// set and add some other events
....
event_base_dispatch(base);
它运行没有错误,但我不知道的地方event_priority_set(&ev, 2)
是否正确,所以我不知道是否设置了优先级。