libevent源代码分析——event_dispatch() (二)

本文深入剖析libevent库的event_dispatch函数,解释timeout_correct(base, &tv)的作用,探讨其如何获取系统时间,并分析在无激活事件情况下的时间处理策略。" 131736609,18158630,深度学习眼中心定位:DeepPupil Net算法与Matlab实现,"['算法', '深度学习', '计算机视觉', 'Matlab', '图像处理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上篇文章中介绍关于event_dispatch的大体框架,这里对其中的几个重要的函数解释说明

1、timeout_correct(base,&tv)

static void
 889 timeout_correct(struct event_base *base, struct timeval *tv)
 890 {
 891     struct event **pev;
 892     unsigned int size;
 893     struct timeval off;
 894 
 895     if (use_monotonic)
 896         return;
 897 
 898     /* Check if time is running backwards */
 899     gettime(base, tv);
 900     if (evutil_timercmp(tv, &base->event_tv, >=)) {
 901         base->event_tv = *tv;
 902         return;
 903     }
 904 
 905     event_debug(("%s: time is running backwards, corrected",
 906             __func__));
 907     evutil_timersub(&base->event_tv, tv, &off);
 908 
 909     /*
 910      * We can modify the key element of the node without destroying
 911      * the key, beause we apply it to all in the right order.
 912      */
 913     pev = base->timeheap.p;
 914     size = base->timeheap.n;
 915   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值