摘要: 在 github 上git clone 的 libevent 安装前需要运行脚本 ./autogen.sh 但是依然安装失败(待解决) 1. 在 libevent 官网上下载了 2.1.8的稳定版,解压 2. 执行 ./configure --prefix=/usr make make instal 阅读全文
posted @ 2019-05-05 15:25 三二二, 阅读(553) 评论(0) 推荐(0) 编辑
摘要: 前言 : 简单介绍 3 种多线程的模式。 1 暴力抢占 2 纯粹的消息通知机制 3 消息通知加同步层 4 例子 memcached 。memcached 中的网络部分就是基于 Libevent 完成的。其中的多线程模型就是 消息通知 加 同步层机制。 阅读全文
posted @ 2019-05-03 21:09 三二二, 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 前言 : 为了支持定时器, Libevent 必须和系统时间打交道。主要涉及到时间的加减辅助函数、事件缓存、时间校正和定时器堆的时间值调整等。 1 初始化检测 Libevent 在初始化时会检测系统时间的类型,通过调用函数 detect_monotonic() 完成,它通过调用 clock_gett 阅读全文
posted @ 2019-05-03 21:02 三二二, 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 前言 : Libevent 的核心是事件驱动、同步非阻塞,为了达到这一目标,必须使用系统提供的 I/O 多路复用技术。而这些在不同的平台上却各有不同。 1 统一的关键 Libevent 支持多种 I/O 多路复用技术的关键就在于结构体 eventop。它的成员是一系列的函数指针。 struct ev 阅读全文
posted @ 2019-05-03 20:08 三二二, 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 前言 : 与 Signal 相比,Timer 事件的集成会直观和简单很多 1. 集成到事件主循环 因为系统的 I/O 机制都允许程序制定一个最大的等待时间 timeout。就可以根据 Timer 事件的最小超时时间来设置系统 I/O 的 timeout时间。 2 代码解析 if(!base -> e 阅读全文
posted @ 2019-05-03 19:33 三二二, 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 前言 : 这一节将分析如何将 Signal 集成到事件主循环的框架中 1 集成策略——使用 socket pair a 开始 b 创建监听 socket c 绑定本地回环地址, 开始监听本地连接 d 创建一个连接 socket——sock1 e 调用 connect()连接到监听 socket 监听 阅读全文
posted @ 2019-04-28 22:06 三二二, 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 前言 : 事件主循环是 libevent 事件处理的中心部分 1 事件处理主循环 a 开始 b 如果发现系统时间被向后调整了,就校正系统时间 c 根据 timer heap 中 event 的最小超时时间计算系统 I/O demultiplexer 的最大等待时间 d 更新 last wait ti 阅读全文
posted @ 2019-04-28 20:25 三二二, 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 前言 :Reactor 模型的框架组件 event_base 结构体, 位于 event-internal.h 文件中 1. 结构体定义与解释 struct event_base { const struct eventop *evsel; void *evbase; int event_count 阅读全文
posted @ 2019-04-25 21:39 三二二, 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 前言 : event 是 libevent 的核心结构。 1. libevent 的核心 —— event libevent 是基于事件驱动的,event 是 Reactor 框架中的事件处理程序组件;它提供了函数接口,供 Reactor 在事件发生时调用以执行相应的事件处理,通常会绑定一个有效的句 阅读全文
posted @ 2019-04-16 10:17 三二二, 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 前言 : 详细分析源代码之前,应该对其代码文件的基本结构有个大概的认识和分类。 源代码组织结构: libevent源代码主要可分为:头文件、内部使用的头文件、辅助功能函数、日志、libevent框架、对系统 I/O 多路复用机制的封装、信号管理、定时事件管理、缓冲区管理、基本数据结构和基于 libe 阅读全文
posted @ 2019-04-15 16:21 三二二, 阅读(179) 评论(0) 推荐(0) 编辑