void
ngx_process_events_and_timers(ngx_cycle_t *cycle)
{
ngx_uint_t flags;
ngx_msec_t timer, delta;
/*一种为常规的定时检测机制,也就是设置定时器,
每过一定的时间就对红黑树管理的所有事件对象进行一次超时检测;
另一种是过距离当前最快发生超时的事件对象的时间就进行一次超时检测。
*/
if (ngx_timer_resolution) {//方案一设置固定时间,系统超时检测
timer = NGX_TIMER_INFINITE;
flags = 0;
} else {//方案二
timer = ngx_event_find_timer();
flags = NGX_UPDATE_TIME;
}
//...
//...
/*timer 作为epoll_ctl的第三个参数定时时间传入.
两种方案的定时时间都存入红黑树中进行管理*/
//...
//...
}
参考:
http://geek.csdn.net//news/detail/3119
http://www.aqee.net/reverse-engineering-a-d-link-backdoor/
http://www.devttys0.com/2013/10/reverse-engineering-a-d-link-backdoor/
Nginx---定时器<简单说明>
最新推荐文章于 2024-06-13 20:41:34 发布