Mercurial > hg > nginx
comparison src/event/ngx_event_timer.c @ 213:f536f91e8e99
nginx-0.0.1-2003-12-19-15:45:27 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 19 Dec 2003 12:45:27 +0000 |
parents | 679f60139863 |
children | 05592fd7a436 |
comparison
equal
deleted
inserted
replaced
212:679f60139863 | 213:f536f91e8e99 |
---|---|
19 if (cycle->old_cycle) { | 19 if (cycle->old_cycle) { |
20 return NGX_OK; | 20 return NGX_OK; |
21 } | 21 } |
22 | 22 |
23 ngx_event_timer_rbtree = &ngx_event_timer_sentinel; | 23 ngx_event_timer_rbtree = &ngx_event_timer_sentinel; |
24 ngx_event_timer_sentinel.left = &ngx_event_timer_sentinel; | |
25 | 24 |
26 #if 0 | 25 #if 0 |
26 ngx_event_timer_sentinel.left = &ngx_event_timer_sentinel; | |
27 ngx_event_timer_sentinel.right = &ngx_event_timer_sentinel; | 27 ngx_event_timer_sentinel.right = &ngx_event_timer_sentinel; |
28 ngx_event_timer_sentinel.parent = &ngx_event_timer_sentinel; | 28 ngx_event_timer_sentinel.parent = &ngx_event_timer_sentinel; |
29 #endif | 29 #endif |
30 | 30 |
31 return NGX_OK; | 31 return NGX_OK; |
39 | 39 |
40 ngx_msec_t ngx_event_find_timer(void) | 40 ngx_msec_t ngx_event_find_timer(void) |
41 { | 41 { |
42 ngx_rbtree_t *node; | 42 ngx_rbtree_t *node; |
43 | 43 |
44 if (ngx_event_timer_rbtree == &ngx_event_timer_sentinel) { | |
45 return 0; | |
46 } | |
47 | |
44 node = ngx_rbtree_min(ngx_event_timer_rbtree, &ngx_event_timer_sentinel); | 48 node = ngx_rbtree_min(ngx_event_timer_rbtree, &ngx_event_timer_sentinel); |
45 | 49 |
46 if (node == &ngx_event_timer_sentinel) { | 50 return (ngx_msec_t) |
47 return 0; | |
48 | |
49 } else { | |
50 return (ngx_msec_t) | |
51 (node->key * NGX_TIMER_RESOLUTION - | 51 (node->key * NGX_TIMER_RESOLUTION - |
52 ngx_elapsed_msec / NGX_TIMER_RESOLUTION * NGX_TIMER_RESOLUTION); | 52 ngx_elapsed_msec / NGX_TIMER_RESOLUTION * NGX_TIMER_RESOLUTION); |
53 #if 0 | 53 #if 0 |
54 (node->key * NGX_TIMER_RESOLUTION - ngx_elapsed_msec); | 54 (node->key * NGX_TIMER_RESOLUTION - ngx_elapsed_msec); |
55 #endif | 55 #endif |
56 } | |
57 } | 56 } |
58 | 57 |
59 | 58 |
60 void ngx_event_expire_timers(ngx_msec_t timer) | 59 void ngx_event_expire_timers(ngx_msec_t timer) |
61 { | 60 { |
62 ngx_event_t *ev; | 61 ngx_event_t *ev; |
63 ngx_rbtree_t *node; | 62 ngx_rbtree_t *node; |
64 | 63 |
65 for ( ;; ) { | 64 for ( ;; ) { |
65 | |
66 if (ngx_event_timer_rbtree == &ngx_event_timer_sentinel) { | |
67 break; | |
68 } | |
69 | |
66 node = ngx_rbtree_min(ngx_event_timer_rbtree, | 70 node = ngx_rbtree_min(ngx_event_timer_rbtree, |
67 &ngx_event_timer_sentinel); | 71 &ngx_event_timer_sentinel); |
68 | |
69 if (node == &ngx_event_timer_sentinel) { | |
70 break; | |
71 } | |
72 | 72 |
73 if ((ngx_msec_t) node->key <= (ngx_msec_t) | 73 if ((ngx_msec_t) node->key <= (ngx_msec_t) |
74 (ngx_old_elapsed_msec + timer) / NGX_TIMER_RESOLUTION) | 74 (ngx_old_elapsed_msec + timer) / NGX_TIMER_RESOLUTION) |
75 { | 75 { |
76 ev = (ngx_event_t *) | 76 ev = (ngx_event_t *) |