函数:

int event_base_loop(struct event_base *, int);

等待事件被触发,然后调用它们的回调函数。这是 event_base_dispatch的更灵活版本。默认情况下,这个循环会一直运行,直到没有添加的事件,或者直到调用了event_base_loopbreak()或者evenet_base_loopexit().你可以通过flags参数修改这个行为。

参数1:eb表示event_base结构体。

参数2:flags是EVLOOP_ONCE | EVLOOP_NONBLOCK的组合。

返回值:0表示成功,-1表示发生了错误,1表示没有事件被注册。

EVLOOP_ONCE: 阻塞直到有一个活跃的event,然后执行完活跃事件的回调就退出。

EVLOOP_NONBLOCK : 不阻塞,检查哪个事件准备好,调用优先级最高的那一个,然后退出。

event_base_loop相关推荐

  1. 使用libevent多线程验证Linux上的服务器惊群现象

    什么是惊群现象? 惊群(thundering herd)是指,只有一个子进程能获得连接,但所有N个子进程却都被唤醒了,这种情况将使性能受损. 举一个很简单的例子,当你往一群鸽子中间扔一块食物,虽然最终 ...

  2. libevent介绍

    libevent是一款事件驱动的网络开发包 由于采用 c 语言开发 体积小巧,跨平台,速度极快. 通常我们在建立服务器的处理模型的时候,主要是下面集中模型; (1)    a new Connecti ...

  3. Memcached内存池分析

    针对Memcacged1.4.15代码 1.完整slabs内存池图 这是我画的memcached的slabs内存池对象关系图: 2.内存池数据结构 typedef struct {unsigned i ...

  4. 【libevent】libevent库学习总结(二)——编程步骤

    一.libevent编程步骤 0.分配并初始化event_base,两种方法 0.1 event_base_new:线程安全,代替event_init: 0.2 event_init:线程不安全,不推 ...

  5. 【libevent】libevent库学习总结(一)——基础

    libevent库学习总结(一)--基础 一.基础 1.1. 介绍 Libevent是一个用于开发可伸缩网络服务器的事件通知库.Libevent API提供了一种机制来执行回调函数,当某个特定事件发生 ...

  6. memcached(二)事件模型源码分析

    在memcachedd中,作者为了专注于缓存的设计,使用了libevent来开发事件模型.memcachedd的时间模型同nginx的类似,拥有一个主进行(master)以及多个工作者线程(woker ...

  7. libevent源码深度剖析十一

    libevent源码深度剖析十一 --时间管理 张亮 为了支持定时器,Libevent必须和系统时间打交道,这一部分的内容也比较简单,主要涉及到时间的加减辅助函数.时间缓存.时间校正和定时器堆的时间值 ...

  8. Libevent实现TCP服务循环监听

    目标 建立一个简单的tcp服务,可持续的监听客户端的连接和请求 细节 libevent stream socket EV_READ | EV_PERSIST 代码 要义libevent对stream_ ...

  9. 【原创】日志输出到串口设备导致的问题

    2019独角兽企业重金招聘Python工程师标准>>> 问题场景:       测试人员报告,业务 modb 作为 RabbitMQ 的消费者,消费消息的速度非常慢,慢到大约每秒 2 ...

最新文章

  1. python拟合曲线(小批量随机梯度下降)
  2. iOS中几种数据持久化方案总结
  3. 为什么哲学是最难的学科_什么是哲学哲学对大师来说可能非常理论化,没有一定哲学基础肯能很难 爱问知识人...
  4. php获取错误信息函数,关于php:如何获取mail()函数的错误消息?
  5. web移动端开发经验总结
  6. Flutter 内幕:Flutter 在内部是如何工作的?
  7. 蓝桥杯 ADV-155 算法提高 上帝造题五分钟
  8. sklearn 决策树例子_Sklearn库例子——决策树分类
  9. LINUX自学-初识LINUX
  10. 如何让《隐秘的角落》快速大结局?只需要一份保险......
  11. 如何打造差异化抖音账号IP?
  12. Java编程:Java里的协程
  13. C/C++ Qt StatusBar 底部状态栏应用
  14. 互联网+大赛评审规则浅析
  15. java数据回填_快逸数据回填的实现方法
  16. 图解 | 原来这就是网络
  17. DS18B20数字温度传感器
  18. 2073:【例2.16 】三角形面积
  19. 【松岩L2点金圈】历劫方知股海深,掀天浪起百舟倾。
  20. 二分查找法的基本思想与实现代码

热门文章

  1. linux配置vscodec运行环境,Linux 下 VSCode c/c++环境配置
  2. php 5.5.12 yaf,yaf框架教程(5)- yaf框架的启动文件
  3. Adobe illustrator 论文图形编辑和排版 - 连载 2
  4. Pandoc提供二进制分发包了
  5. 图像处理包magick - R版的PS - 学习笔记
  6. 衡量人体健康的“十大新标杆”
  7. P5737 【深基7.例3】闰年展示(python3实现)
  8. CANopen | 对象字典OD 04 - 创建对象字典的变量(映射变量)
  9. [4] ADB 应用管理
  10. HTTPS|SSL笔记-SSL分手过程(Encrypted Alert)