作者:http://blog.csdn.net/sparkliang/article/category/660506
libevent源码深度剖析十三——libevent信号处理注意点前面讲到了libevent实现多线程的方法,然而在多线程的环境中注册信号事件,还是有一些情况需要小心处理,那就是不能在多个libevent实例上注册信号事件。依然冠名追加到libevent系列。 以2个线程为例,做简单的场景分析。1 首先是创建并初始化线程1的libevent实例base1,线程1的libevent实例base2;2 在base1上注册SIGA... 2010-02-11 20:00 阅读(1669) 最近把libevent源码深度剖析系列文章整合成了一个完整的PDF,方便朋友们阅读,也算是对libevent源码的分析做一个总结。可以到我的资源下载:http://sparkliang.download.csdn.net/... 2010-01-17 12:02 阅读(7547) Libevent本身并不是多线程安全的,在多核的时代,如何能充分利用CPU的能力呢,这一节来说说如何在多线程环境中使用libevent,跟源代码并没有太大的关系,更多是使用上的技巧。... 2010-01-04 17:47 阅读(3125) 为了支持定时器,Libevent必须和系统时间打交道,这一部分的内容也比较简单,主要涉及到时间的加减辅助函数、时间缓存、时间校正和定时器堆的时间值调整等,本节就结合源代码来分析一下。... 2009-12-30 12:54 阅读(1493) Libevent的核心是事件驱动、同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows、Linux、Unix等不同平台上却各有不同,如何能提供优雅而统一的支持方式,是首要关键的问题,这其实不难,本节就来分析一下。... 2009-12-30 12:41 阅读(2031) 具体分析libevent中I/O事件和Timer事件的集成,并将具体分析libevent对heap的实现机制,看看libevent对heap调整操作的一些优化。... 2009-12-22 11:25 阅读(2535) 具体分析分析libevent是如何将Signal事件集成到事件处理框架中的,本节会描述libevent使用到的集成策略——socket pair通知机制。... 2009-12-15 14:48 阅读(3172) 本节将详细分析libevent的事件主循环,描述libevent是如何处理就绪的I/O事件、定时器和信号事件,以及如何将它们无缝的融合到一起。;至此Libevent的基本框架:事件管理和主循环都已经介绍完毕,阶段性的胜利!... 2009-12-11 18:40 阅读(3790) 初见事件处理框架,本节将分析libevent的事件处理框架event_base和libevent注册、删除事件的具体流程。 分析event_base这一重要结构体,初步分析libevent对系统的I/O demultiplex机制的封装event_op结构,并结合源代码分析事件的注册和删除处理。... 2009-12-11 13:50 阅读(4560) Libevent是基于事件驱动(event-driven)的,从名字也可以看到event是整个库的核心。event就是Reactor框架中的事件处理程序组件;它提供了函数接口,供Reactor在事件发生时调用,以执行相应的事件处理,通常它会绑定一个有效的句柄。 本节将详细介绍libevent的核心结构event,以及libevent对event的管理。 ... 2009-12-09 23:02 阅读(5495) 详细分析源代码之前,如果能对其代码文件的基本结构有个大概的认识和分类,对于代码的分析将是大有裨益的。 本节内容不多,我想并不是说它不重要!... 2009-12-07 16:32 阅读(4403) 学习源代码该从哪里入手?我觉得从程序的基本使用场景和代码的整体处理流程入手是个不错的方法,至少从个人的经验上讲,用此方法分析libevent是比较有效的。 本节将会介绍libevent的简单实用场景和事件处理流程,让读者对libevent打上基本的印象。... 2009-12-07 16:25 阅读(7380) 前面讲到,整个libevent本身就是一个Reactor,因此本节将专门对Reactor模式进行必要的介绍,并列出libevnet中的几个重要组件和Reactor的对应关系,在后面的章节中可能还会提到本节介绍的基本概念。 ... 2009-12-07 16:15 阅读(8131) Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少。写这一系列文章的用意在于,一则分享心得;二则对libevent代码和设计思想做系统的、更深层次的分析,写出来,也可供后来者参考。 学习libevent有助于提升程序设计功力,除了网络程序设计方面外,Libevent的代码里有很多有用的设计技巧和基础数据结构,比如信息隐藏、函数指针、c语言的多态支持、链表和堆等等,都有助于提升自身的程序功力。程序设计不止要了解框架,很多细节之处恰恰也是事关整个系统成败的关键。只对... 2009-12-07 16:10 阅读(15100)