libevent源码分析1 ----evnet相关结构体分析
位于代码event-internal.h中。
event_base类似事件的集合,你创建一个事件,必须将该事件指定一个集合。
struct event_base {
50 const struct eventop *evsel; /*evsel和evbase就类比与类和对象之间的关系,evbase是evsel的
51 一个具体实现,指在这里使用的复用模型*/
52 void *evbase;
53 /*这个event_base所关注的事件数目*/
54 int event_count; /* counts number of total events */
55 /*这个event_base中激活事件的数目*/
56 int event_count_active; /* counts number of active events */
57 /*判断循环退出的条件*/
58 int event_gotterm; /* Set to terminate loop */
59 int event_break; /* Set to terminate loop immediately */
60
61 /* active event management */
62 /*只存事件链表,执行存放不同优先级事件的链,所以使用二级指针,激活事件的链表*/
63 struct event_list **activequeues;
64 /*事件链表的数目,数据是根据优先级来决定的*/
65 int nactivequeues;
66
67 /* signal handling info */
68 /*处理信号事件的单独结构体*/
69 struct evsignal_info sig;
70 /*存放所有事件的链表*/
71 struct event_list eventqueue;
72 struct timeval event_tv;
73 /*管理和超时事件相关的时间小顶堆*/
74 struct min_heap timeheap;
75 /*存放时间的时间缓冲*/
76 struct timeval tv_cache;
77 };
最新文章
- 在网上摘录一段对于IOC的解析,比较直观,大家观摩观摩
- 数论 - Pairs(数字对)
- Bootstrap自带的一些预定义的按钮颜色
- input文本框和img验证码对齐问题
- 【HDU2196 Computer】经典树形dp
- 【Struts 2】Struts2环境搭建
- 【C#学习笔记】保存文件
- python 2.5源代码编绎
- Excel 数据分析技巧
- 一些好用的nginx第三方模块
- android系统如何自适应屏幕大小
- Android Animation学习 实现 IOS 滤镜退出动画
- C# 多线程学习笔记 - 1
- Thymeleaf引入公共片段方式
- webpack搭建自己的项目
- Async异步编程入门示例
- 第二个Sprint冲刺第五天(燃尽图)
- 图片src拼接后台返回ID
- 使用sun.misc.BASE64Decoder出错解决方案
- kvm安装windows系统