[libevent]事件流程大览

来源:互联网 发布:搜索引擎优化技术 编辑:程序博客网 时间:2024/04/30 07:19

我 们可以从sample的文件夹里面找到以下文件代码:


int called = 0;static voidsignal_cb(int fd, short event, void *arg){struct event *signal = arg;printf("%s: got signal %d\n", __func__, EVENT_SIGNAL(signal));if (called >= 2)event_del(signal);called++;}intmain (int argc, char **argv){struct event signal_int; /* Initalize the event library */event_init();/* Initalize one event */event_set(&signal_int, SIGINT, EV_SIGNAL|EV_PERSIST, signal_cb,    &signal_int);event_add(&signal_int, NULL);event_dispatch();return (0);}

第一步:event_init()实际上是相当于调用了event_base_new()创建了一个event_base对象

第二步:event_set()设置eventsignal_int)的成员

第三步:event_add()相当于注册事件吧

第四步:循环

 

接下来我们来整理一下程序的运行过程,不断深入。

 

首先是event_init():

 

 

event_set()就是单纯的设置成员而已。

 

event_add()

 

 

event_dispatch()

 

 

列出了一些主要的函数,接下来的几篇就是对函数的分析了,一句一句~


0 0
原创粉丝点击