
libevent源码深度剖析
许糖豆
这个作者很懒,什么都没留下…
展开
-
libevent源码深度剖析之队列
一、单链表/* * Singly-linked List definitions. */#define SLIST_HEAD(name, type) \struct name { \ struct type *slh_first; /* first element */ \}#define SLIST_HEAD_INITIALIZER(head) ...原创 2020-05-04 14:44:02 · 352 阅读 · 0 评论 -
libevent源码深度剖析之devpoll.c
第一章基础知识1.1 pread和pwrite函数#include <unistd.h>ssize_t pread(int fd, void *buf, size_t count, off_t offset);ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);pread简单来说就是在指定偏...原创 2020-05-02 22:03:18 · 285 阅读 · 0 评论 -
libevent源码深度剖析之evutil_time.c
第一章 time基础知识1.1 struct timeval/* * Structure used in select() call, taken from the BSD file sys/time.h. */struct timeval { long tv_sec; /* seconds */ long tv_usec; ...原创 2020-05-02 16:32:24 · 577 阅读 · 0 评论 -
libevent源码深度剖析之epoll.c
第一章 poll基础知识select() 和 poll() 系统调用的本质一样,poll() 的机制与 select() 类似,与 select() 在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll() 没有最大文件描述符数量的限制(但是数量过大后性能也是会下降)。poll() 和 select() 同样存在一个缺点就是,包含大量文件描述符的数组被整体复...原创 2020-05-02 11:35:43 · 527 阅读 · 0 评论 -
libevent源码深度剖析之源代码组织结构
第一章 源代码组织结构Libevent的源代码虽然都在一层文件夹下面,但是其代码分类还是相当清晰的,主要可分为头文件、内部使用的头文件、辅助功能函数、日志、libevent框架、对系统I/O多路复用机制的封装、信号管理、定时事件管理、缓冲区管理、基本数据结构和基于libevent的两个实用库等几个部分,有些部分可能就是一个源文件。源代码中的test部分就不在我们关注的范畴了1)头文件...原创 2020-04-28 20:35:25 · 400 阅读 · 0 评论