事件循环可以通过多种方式退出,例如用户调用 event_base_loopbreak 或event_base_loopexit,或者在某些错误情况下自动退出。 这个dispatch有多重实现,针对select、epoll等B-1:epoll_dispatch epoll.c # epoll_dispatch(struct event_base *base, struct timeval *tv) ...
intevent_base_loop(structevent_base*base,intflags){//设置为EVLOOP_NONBLOCK,那么event_loop只会处理当前已经激活的event,处理结束后就会退出event_loop//设置为EVLOOP_ONCE,那么event_loop就会等待到第一个事件超时,处理在这段时间内激活的event,直到所有激活的事件都处理完就退出event_loop//设置为其他值,那么...
//event_base_dispatch(base); // 事件主循环的三种示例 // EVLOOP_ONCE 等待一个事件运行,直到没有活动事件就退出 // event_base_loop(base, EVLOOP_NONBLOCK); // EVLOOP_NONBLOCK 有活动事件就处理,没有就返回0 (启动程序无活动就退出了) //while (!isexit) //{ // event_base_loop(base, EVLO...
res = evsel->dispatch(base, tv_p);if (res == -1) { event_debug(("%s: dispatch returned ...
事件主循环的退出 event_base_loopexit event_base_loopbreak 开启事件主循环 在libevent中,事件主循环的作用就是执行一个循环,在循环中监听事件以及超时的事件并且将这些激活的事件进行处理。libevent提供了对用户开放了两种执行事件主循环的函数: int event_base_dispatch(struct event_base *); ...
接口:event_base_dispatch /** Event dispatching loop 事件分配循环 This loop will run the event base until either there are no more pending or active, or until
no events were pending or active. 成功返回0,错误返回-1,或者1(当没有等待的或者活动事件时退出,会返回1)@see event_base_loop()*/ EVENT2_EXPORT_SYMBOL int event_base_dispatch(struct event_base *base);int event_base_dispatch(struct event_base *event_base){ return (event_base_loop(event_...
event_base_dispatch(base); } 示例:执行事件循环10秒,然后退出 #include<event2/event.h> voidrun_base_with_ticks(structevent_base*base) { structtimeval ten_sec; ten_sec.tv_sec=10; ten_sec.tv_usec=0; /*Now we run the event_base for a series of 10-second intervals, printing ...
下面是一个专门用来处理libevent的线程的代码 sometype * obj = nullptr;resource * res = nullptr;do { obj = new sometype;if (nullptr == obj){ break;} res = new resource;if (nullptr == res){ break;} event_base_dispatch(base);} while (false);delete sometype;delete resource...
event_base_dispatch(base); } 示例:执行事件循环10秒,然后退出 #include <event2/event.h> void run_base_with_ticks(struct event_base *base) { struct timeval ten_sec; ten_sec.tv_sec = 10; ten_sec.tv_usec = 0; /* Now we run the event_base for a series of 10-second intervals, pri...