Mercurial > hg > nginx
comparison src/event/ngx_event_timer.h @ 210:00cafae0bdf1
nginx-0.0.1-2003-12-14-23:10:27 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 14 Dec 2003 20:10:27 +0000 |
parents | e1c815be05ae |
children | f536f91e8e99 |
comparison
equal
deleted
inserted
replaced
209:e1c815be05ae | 210:00cafae0bdf1 |
---|---|
6 #include <ngx_core.h> | 6 #include <ngx_core.h> |
7 #include <ngx_event.h> | 7 #include <ngx_event.h> |
8 | 8 |
9 | 9 |
10 /* | 10 /* |
11 * 32 bit key value resolution | 11 * 32 bit timer key value resolution |
12 * | 12 * |
13 * 1 msec - 49 days | 13 * 1 msec - 49 days |
14 * 10 msec - 1 years 4 months | 14 * 10 msec - 1 years 4 months |
15 * 50 msec - 6 years 10 months | 15 * 50 msec - 6 years 10 months |
16 * 100 msec - 13 years 8 months | 16 * 100 msec - 13 years 8 months |
25 /* STUB */ int ngx_event_timer_init(ngx_cycle_t *cycle); | 25 /* STUB */ int ngx_event_timer_init(ngx_cycle_t *cycle); |
26 /* STUB */ void ngx_event_timer_done(ngx_cycle_t *cycle); | 26 /* STUB */ void ngx_event_timer_done(ngx_cycle_t *cycle); |
27 | 27 |
28 ngx_msec_t ngx_event_find_timer(void); | 28 ngx_msec_t ngx_event_find_timer(void); |
29 void ngx_event_expire_timers(ngx_msec_t timer); | 29 void ngx_event_expire_timers(ngx_msec_t timer); |
30 | |
31 #if 0 | |
32 int ngx_event_timer_init(ngx_cycle_t *cycle); | |
33 void ngx_event_timer_done(ngx_cycle_t *cycle); | |
34 void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer); | |
35 int ngx_event_find_timer(void); | |
36 void ngx_event_set_timer_delta(ngx_msec_t timer); | |
37 void ngx_event_expire_timers(ngx_msec_t timer); | |
38 #endif | |
39 | 30 |
40 | 31 |
41 extern ngx_rbtree_t *ngx_event_timer_rbtree; | 32 extern ngx_rbtree_t *ngx_event_timer_rbtree; |
42 extern ngx_rbtree_t ngx_event_timer_sentinel; | 33 extern ngx_rbtree_t ngx_event_timer_sentinel; |
43 | 34 |
57 if (ev->timer_set) { | 48 if (ev->timer_set) { |
58 ngx_del_timer(ev); | 49 ngx_del_timer(ev); |
59 } | 50 } |
60 | 51 |
61 ev->rbtree_key = (ngx_int_t) | 52 ev->rbtree_key = (ngx_int_t) |
53 (ngx_elapsed_msec / NGX_TIMER_RESOLUTION * NGX_TIMER_RESOLUTION | |
54 + timer) / NGX_TIMER_RESOLUTION; | |
55 #if 0 | |
62 (ngx_elapsed_msec + timer) / NGX_TIMER_RESOLUTION; | 56 (ngx_elapsed_msec + timer) / NGX_TIMER_RESOLUTION; |
57 #endif | |
63 | 58 |
64 ngx_rbtree_insert(&ngx_event_timer_rbtree, &ngx_event_timer_sentinel, | 59 ngx_rbtree_insert(&ngx_event_timer_rbtree, &ngx_event_timer_sentinel, |
65 (ngx_rbtree_t *) &ev->rbtree_key); | 60 (ngx_rbtree_t *) &ev->rbtree_key); |
66 | 61 |
67 ev->timer_set = 1; | 62 ev->timer_set = 1; |
68 } | 63 } |
69 | 64 |
70 | 65 |
71 #if 0 | |
72 | |
73 ngx_inline static void ngx_event_del_timer(ngx_event_t *ev) | |
74 { | |
75 #if (NGX_DEBUG_EVENT) | |
76 ngx_connection_t *c = ev->data; | |
77 ngx_log_debug(ev->log, "del timer: %d:%d" _ c->fd _ ev->write); | |
78 #endif | |
79 | |
80 if (!ev->timer_next || !ev->timer_prev) { | |
81 ngx_log_error(NGX_LOG_ALERT, ev->log, 0, "timer already deleted"); | |
82 return; | |
83 } | |
84 | |
85 if (ev->timer_prev) { | |
86 ev->timer_prev->timer_next = ev->timer_next; | |
87 } | |
88 | |
89 if (ev->timer_next) { | |
90 ev->timer_next->timer_delta += ev->timer_delta; | |
91 ev->timer_next->timer_prev = ev->timer_prev; | |
92 ev->timer_next = NULL; | |
93 } | |
94 | |
95 if (ev->timer_prev) { | |
96 ev->timer_prev = NULL; | |
97 } | |
98 | |
99 ev->timer_set = 0; | |
100 } | |
101 | |
102 #endif | |
103 | |
104 | |
105 #endif /* _NGX_EVENT_TIMER_H_INCLUDED_ */ | 66 #endif /* _NGX_EVENT_TIMER_H_INCLUDED_ */ |