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 *)