Mercurial > hg > nginx
comparison src/event/ngx_event_timer.c @ 5895:0f53e5fb7205
Events: simplified cycle in ngx_event_expire_timers().
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Mon, 25 Aug 2014 13:37:06 +0400 |
parents | 1f513d7f1b45 |
children | 3efdd7788bb0 |
comparison
equal
deleted
inserted
replaced
5894:1f513d7f1b45 | 5895:0f53e5fb7205 |
---|---|
65 return; | 65 return; |
66 } | 66 } |
67 | 67 |
68 node = ngx_rbtree_min(root, sentinel); | 68 node = ngx_rbtree_min(root, sentinel); |
69 | 69 |
70 /* node->key <= ngx_current_time */ | 70 /* node->key > ngx_current_time */ |
71 | 71 |
72 if ((ngx_msec_int_t) (node->key - ngx_current_msec) <= 0) { | 72 if ((ngx_msec_int_t) (node->key - ngx_current_msec) > 0) { |
73 ev = (ngx_event_t *) ((char *) node - offsetof(ngx_event_t, timer)); | 73 return; |
74 } | |
74 | 75 |
75 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, | 76 ev = (ngx_event_t *) ((char *) node - offsetof(ngx_event_t, timer)); |
76 "event timer del: %d: %M", | |
77 ngx_event_ident(ev->data), ev->timer.key); | |
78 | 77 |
79 ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->timer); | 78 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, |
79 "event timer del: %d: %M", | |
80 ngx_event_ident(ev->data), ev->timer.key); | |
81 | |
82 ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->timer); | |
80 | 83 |
81 #if (NGX_DEBUG) | 84 #if (NGX_DEBUG) |
82 ev->timer.left = NULL; | 85 ev->timer.left = NULL; |
83 ev->timer.right = NULL; | 86 ev->timer.right = NULL; |
84 ev->timer.parent = NULL; | 87 ev->timer.parent = NULL; |
85 #endif | 88 #endif |
86 | 89 |
87 ev->timer_set = 0; | 90 ev->timer_set = 0; |
88 | 91 |
89 ev->timedout = 1; | 92 ev->timedout = 1; |
90 | 93 |
91 ev->handler(ev); | 94 ev->handler(ev); |
92 | |
93 continue; | |
94 } | |
95 | |
96 break; | |
97 } | 95 } |
98 } | 96 } |