
libevent
jeremy505
Talk less,think more!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
libevent源码分析(五)
libevent-1.4/sample/signal-test.cevent_add(&signal_int, NULL);将 struct event signal_int添加到struct event_base* base,即注册号监听事件以及回调后添加到Reactor上。int event_add(struct event *ev, const struct timeval *...原创 2018-09-24 11:10:51 · 190 阅读 · 0 评论 -
libevent源码分析(六)
libevent-1.4/sample/singnal-test.c接下来看看 event_base_dispatch(base);这个函数是整个Reactor的核心,是一个loop.函数定义:int event_base_dispatch(struct event_base *event_base){ return (event_base_loop(event_base, 0));...原创 2018-09-24 12:35:02 · 323 阅读 · 0 评论 -
libevent源码分析(二)
libevet——Reactor初始化,先来看看event_base_new的定义,先关注主线代码,后续研究细节:struct event_base *event_base_new(void){ int i; struct event_base *base; if ((base = calloc(1, sizeof(struct event_base))) == NULL) even...原创 2018-09-21 14:46:47 · 257 阅读 · 0 评论 -
libeevent 源码分析(一)
目前libevent 源码版本已经在2.1版本以上,相对而言,1.4版本容易理解,且2.1版本变动不少,所以本着学习的目的,先阅读1.4版本。先从libevent目录sampel下signal-test.c开始入手,主体代码如下:int called = 0;static void signal_cb(int fd, short event, void *arg){ struct eve...原创 2018-09-21 15:10:09 · 292 阅读 · 0 评论 -
libevent源码分析(三)
在libevent(二)中最后我提到了socketpair,不同于系统调用socketpair,libevent自己使用本地通信实例(AF_UNIX)实现了socketpair的功能,我不知道二者实现方式是不是一直,但原理上应该是一致的。我把evsignal_init函数中的evutil_socketpair提取出来并做测试,代码如下:...原创 2018-09-21 22:08:33 · 261 阅读 · 0 评论 -
libevent源码分析(四)
sample/signal-test.c/* Initalize one event */event_set(&signal_int, SIGINT, EV_SIGNAL|EV_PERSIST, signal_cb,&signal_int);event_base_set(base, &signal_int);以上函数为信号SIGINT注册是信号事件以及回调函数,然...原创 2018-09-22 09:26:21 · 208 阅读 · 0 评论