会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
博客园
::
首页
::
博问
::
闪存
::
新随笔
::
联系
::
订阅
::
管理
::
公告
2014年4月21日
libevent2源码分析之五:关键的调用链
摘要: 用一个调用链来表示函数调用的流程,看起来更直观。根据上面的分析,总结了一些重要的调用链。初始化event_base_newevent_base_new_with_configmin_heap_ctorevent_deferred_cb_queue_initevmap_io_initmapevmap_...
阅读全文
posted @ 2014-04-21 23:15 黑米
阅读(578)
评论(0)
推荐(0)
libevent2源码分析之四:libevent2的消息泵
摘要: Dispatch类似于一个消息泵,在一个死循环中,不停地检查IO的状态(可以想像成不断从消息队列中读取消息),将状态的改变变成事件,再进行事件的响应。主要代码如下:[event.c]intevent_base_loop(structevent_base*base,intflags){conststr...
阅读全文
posted @ 2014-04-21 23:11 黑米
阅读(1675)
评论(0)
推荐(0)
libevent2源码分析之三:信号的初始化流程
摘要: libevent2对信号的响应也进行了封装,使之与socket操作一样对外提供统一的接口。这里的信号一般指linux的信号。由于信号与socket相关的编程接口有较大的不同,因此在内部实现也有一些区别。与IO操作(socket算作是IO操作)的evsel类似,在event_base中也定义了信号的操...
阅读全文
posted @ 2014-04-21 23:00 黑米
阅读(1871)
评论(0)
推荐(0)
libevent2源码分析之二:初始化流程
摘要: 本文并不很详细地分析初始化的各个细节,而重点分析如何将底层操作关联到event_base的相关字段。初始化工作主要是针对event_base的。libevent2支持多种底层实现,有epoll, select, iocp等。下面的工作主要是以熟悉的select作为底层实现,分析libevent2的工...
阅读全文
posted @ 2014-04-21 22:24 黑米
阅读(1526)
评论(0)
推荐(0)
libevent2源码分析之一:前言
摘要: event的本质libevent2中的event的本质是什么?只要是非同步阻塞的运行方式,肯定遵循事件的订阅-发布模型。通过event_new的函数原型可以理解,一个event即代表一次订阅,建立起了fd变化的事件与callback响应函数之间的一个关联。订阅-发布模型有四个方面,事件定义、事件订阅...
阅读全文
posted @ 2014-04-21 22:08 黑米
阅读(1327)
评论(0)
推荐(0)