[libevent]timeout_process()

来源:互联网 发布:淘宝店铺简介大全 编辑:程序博客网 时间:2024/06/05 01:57
voidtimeout_process(struct event_base *base){struct timeval now;struct event *ev;if (min_heap_empty(&base->timeheap))return;gettime(base, &now);while ((ev = min_heap_top(&base->timeheap))) {//获得当前时间后跟小根堆的元素做比较,过时则删除并且插入到就绪链表if (evutil_timercmp(&ev->ev_timeout, &now, >))break;/* delete this event from the I/O queues */event_del(ev);event_debug(("timeout_process: call %p", ev->ev_callback));event_active(ev, EV_TIMEOUT, 1);}}

0 0
原创粉丝点击