event处理流程Libevent处理时间的大概流程为
1、设置event_base(即初始化Reactor)
2、设置event事件(初始化event)
3、将event和event_base关联(将event注册到event_base)
4、进入循环,等待事件
5、事件发生,处理事件。...
分类:
其他好文 时间:
2015-08-21 00:15:01
阅读次数:
267
event_base数据结构
初始化event_base
相关接口...
分类:
其他好文 时间:
2015-08-18 22:44:01
阅读次数:
124
1 event_base01.struct event_base { 02. const struct eventop *evsel; 03. void *evbase; 04. int event_count; 05. int event_count_active; 06. int event.....
分类:
其他好文 时间:
2015-08-11 09:55:15
阅读次数:
174
libevent事件处理的中心部分——事件主循环,根据系统提供的事件多路分发机制执行事件循环,对已注册的就绪事件,调用注册事件的回调函数来处理事件。
事件处理主循环
libevent的事件主循环主要是通过event_base_loop ()函数完成的,其主要操作如下面的流程图所示,event_base_loop所作的就是持续执行下面的循环。
上图的简单描述就是:
校正系统当...
分类:
其他好文 时间:
2015-04-20 15:01:51
阅读次数:
136
worker线程拿到了这个连接之后,就应该是分配给这个连接一个结构体,包括这个连接所有的状态,都写buf等,这个结构体就是conn,然后这个worker线程会在它自己的event_base加入对这个新的连接的事件的监听。上面也说过了worker的event_base有两套处理逻辑,一个对notify...
分类:
系统相关 时间:
2015-04-20 14:34:35
阅读次数:
189
libevent的核心-event
Libevent是基于事件驱动(event-driven)的,从名字也可以看到event是整个库的核心。event就是Reactor框架中的事件处理程序组件;它提供了函数接口,供Reactor在事件发生时调用,以执行相应的事件处理,通常它会绑定一个有效的句柄。
//在event2/event_struct.h中event的结构描述
struct event...
分类:
其他好文 时间:
2015-04-16 23:45:13
阅读次数:
366
一 主循环
每个服务器都有一个主循环,在开始主循环的过程中,会用到以下几个函数:
// 创建成功返回一个拥有默认设置的 event base
// 创建失败返回 NULL
struct event_base *event_base_new(void);
// event_base 的释放
void event_base_free(struct event_base *base);
// 指...
libevent 接收TCP连接Evconnlistener 机制为您提供了侦听和接受传入的 TCP 连接的方法。下面的函数全部包含在``中。evconnlistener创建监听对象struct evconnlistener *evconnlistener_new(struct event_base...
分类:
其他好文 时间:
2015-01-30 01:22:06
阅读次数:
173
events
Libevent的基本操作单元是event。每个event都意味着一个条件集合,包括:
1. 一个准备好读或写的文件描述符。
2. 一个“将”准备好读或写的文件描述符(只有边缘模式下)
3. 一个超时事件
4. 一个信号事件
5. 一个人为触发的事件
Event有相似的生命周期。一旦你通过Libevent方法去设置了一个event,并把它与event_base相关联,那...
分类:
其他好文 时间:
2015-01-29 21:12:13
阅读次数:
231