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_ */