当调用 event_base_dispatch 时,程序将进入一个阻塞状态,直到发生以下情况之一才会退出: 有事件被触发并处理。 调用event_base_loopbreak 或event_base_loopexit 函数显式地请求退出事件循环。 发生错误或异常情况。2. event_base_dispatch函数在什么情况下会退出 event_base_dispatch 在以下情况
event_base_dispatch的主要功能包括:初始化和参数检查、事件循环主逻辑、准备和检查回调的执行、事件调度与处理以及最终的退出逻辑。 其实在内部就是调用了epoll_wait 或者select模式的select函数,获取内核返回就绪的套接字。 英文翻译的话就是 event_base 的派遣dispatch:派遣;发送;迅速处理,迅速办妥;杀死,处决1.0...
事件intn=event_process_active(base);//执行激活队列中的event相应的回调函数,返回的n是成功执行的非内部事件数目if((flags&EVLOOP_ONCE)//如果设置了EVLOOP_ONCE,并且所有激活的事件都处理完了,那么就退出event_loop&&N_ACTIVE_CALLBACKS(base)==0&&n!=0)done=1;}elseif(flags&EVLOOP_NONBLOCK)//如果设置...
@return 0 if successful, -1 if an error occurred, or 1 if we exited because no events were pending or active. 成功返回0, 错误返回-1, 或者1(当没有等待的或者活动事件时退出,会返回1) @see event_base_loop()*/EVENT2_EXPORT_SYMBOLintevent_base_dispatch(structevent_base *base); intevent_...
event_base_new_with_config() event_base_new() 或者 event_base_new_with_config() 返回的event_base对象 @return 0 if successful, -1 if an error occurred, or 1 if we exited because no events were pending or active. 成功返回0,错误返回-1,或者1(当没有等待的或者活动事件时退出,会返回1...