\n ",17); close(fds[1]); exit(0); } //启动事件循环 【当调用 event_base_dispatch(base); 时,程序进入事件循环,开始等待事件的发生。这个函数会阻塞当前线程,持续运行直到事件循环被显式停止或者所有事件处理完毕。】 event_base_dispatch(base); //完事后清理资源 event_free(prepare_event); event_...
* without waiting. 如果有活动事件,就直接轮询新的事件,而不用等待*/evutil_timerclear(&tv); }/*If we have no events, we just exit*/ 没有事件,就退出if(0==(flags&EVLOOP_NO_EXIT_ON_EMPTY) && !event_haveevents(base) && !N_ACTIVE_CALLBACKS(base)) { event_debug(("%s: no events regi...
* without waiting.*/evutil_timerclear(&tv); }/*If we have no events, we just exit*///没有注册事件,则退出if(!event_haveevents(base)) { event_debug(("%s: no events registered.", __func__));return(1); }/*update last old time*/gettime(base, &base->event_tv);/*clear time c...
成功返回TRUE成功返回。否则返回FALSE。 ← EventBase::__construct EventBase::exit → 本文档系腾讯云开发者社区成员共同维护,如有问题请联系cloudcommunity@tencent.com 最后更新于:2017-12-18 分享 扫描二维码 扫码关注腾讯云开发者 领取腾讯云代金券
intmain(intargc,char* argv[]){if(argc !=3) {printf("%s config-file node_id\n", argv[0]);exit(EXIT_FAILURE); } Config *conf = parse_conf (argv[1]);structapplication*app=malloc(sizeof(structapplication));app->server_id = atoi ...
libevent源码分析event_base_dispatch,event_base_lo。。。接⼝:event_base_dispatch /** Event dispatching loop 事件分配循环 This loop will run the event base until either there are no more pending or active, or until something calls event_base_loopbreak() or event_base_loopexit().这个循环...
EVLOOP_NO_EXIT_ON_EMPTY:在没有事件在base上的时候不exit退出。比如一个线程发射一个base,另一个线程这时候就可以往这个base里添加事件。 默认api: intevent_base_dispatch(struct event_base*base); 不设置任何flag(flag=0)直接发射base 停止loop: