zoukankan      html  css  js  c++  java
  • libevent 定时器示例

    程序执行结果:

    每隔2秒,触发一次定时器。

    298行:evtimer_assignevent.h中定义如下:

    再来看看event_assign函数:

    ev     要初始化的事件对象

    base    事件对象要指定到哪个even_base上

    fd      文件描述符

    type   事件类型

     fn     事件触发时的回调函数

     arg   回调函数传参

    可以看到,evtimer_assign默认填充了2个参数:

    fd-1,因为定时器不需要fd

    type0

    由于超时时间是在下面的event_add中设置,所以这里也不需要填。

     388行:以上执行结果,跟我们在osp中使用定时器的方法一样,先设置定时器,如果想要重新设置定时器,那么重新event_add。我们也可以通过设置定时器事件对象的类型为EV_PERSIST,使得这个定时器事件成为一个永久定时器,从而不需要在第88行中,等定时器重新触发后重新设置。

           修改后的代码如下:

    4libevent对定时器的管理:

           定时器事件存放在mini-heap中(这个mini-heap好像改造过),key值是定时器事件的超时时间。

  • 相关阅读:
    【poj1008】Maya Calendar
    【CodeVS4093】EZ的间谍网络
    2016.6.19 模拟考试
    【poj1129】Channel Allocation
    【poj2676】Sudoku
    Java 2D API
    Java 2D API
    IntelliJ IDEA
    IntelliJ IDEA 使用说明(For Eclipse user)
    IntelliJ IDEA
  • 原文地址:https://www.cnblogs.com/solohac/p/4154192.html
Copyright © 2011-2022 走看看