本章讲述一下Nginx中通过红黑树来实现定时器的管理。
1. 相关变量定义
2. 函数ngx_event_timer_init()
此函数用于初始化红黑树结构。
3. 函数ngx_event_find_timer()
此函数用于从红黑树中查找当前最近(将要)过期定时器的剩余过期时间。
4. 函数ngx_event_expire_timers()
此函数用于处理当前红黑树中所有已经过期的定时器。下面我们简要分析一下函数的执行流程:
5. 函数ngx_event_cancel_timers()
此函数用于取消红黑树中的所有定时器,直到遇到一个不可取消(ev->cancelable为0)的定时器为止。这里注意到,在取消时,并没有将ev->timeout置为1,这一点与上面介绍的ngx_event_expire_timers()函数是不同的。
[参看]