comparison src/event/ngx_event_timer.h @ 206:9aa426375256

nginx-0.0.1-2003-12-05-10:11:46 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 05 Dec 2003 07:11:46 +0000
parents 4a9a2b1dd6fa
children 6e0fef527732
comparison
equal deleted inserted replaced
205:4a9a2b1dd6fa 206:9aa426375256
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
12 *
11 * 1 msec - 49 days 13 * 1 msec - 49 days
12 * 10 msec - 1 years 4 months 14 * 10 msec - 1 years 4 months
13 * 50 msec - 6 years 10 months 15 * 50 msec - 6 years 10 months
14 * 100 msec - 13 years 8 months 16 * 100 msec - 13 years 8 months
15 */ 17 */
17 #define NGX_TIMER_RESOLUTION 50 19 #define NGX_TIMER_RESOLUTION 50
18 20
19 21
20 int ngx_event_timer_init(ngx_cycle_t *cycle); 22 int ngx_event_timer_init(ngx_cycle_t *cycle);
21 void ngx_event_timer_done(ngx_cycle_t *cycle); 23 void ngx_event_timer_done(ngx_cycle_t *cycle);
22 int ngx_event_find_timer(void); 24 ngx_msec_t ngx_event_find_timer(void);
23 void ngx_event_expire_timers(ngx_msec_t timer); 25 void ngx_event_expire_timers(ngx_msec_t timer);
24 26
25 #if 0 27 #if 0
26 int ngx_event_timer_init(ngx_cycle_t *cycle); 28 int ngx_event_timer_init(ngx_cycle_t *cycle);
27 void ngx_event_timer_done(ngx_cycle_t *cycle); 29 void ngx_event_timer_done(ngx_cycle_t *cycle);
35 extern ngx_rbtree_t *ngx_event_timer_rbtree; 37 extern ngx_rbtree_t *ngx_event_timer_rbtree;
36 38
37 39
38 ngx_inline static void ngx_event_del_timer(ngx_event_t *ev) 40 ngx_inline static void ngx_event_del_timer(ngx_event_t *ev)
39 { 41 {
40 ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->rbtree); 42 ngx_rbtree_delete(&ngx_event_timer_rbtree,
43 (ngx_rbtree_t *) &ev->rbtree_key);
41 44
42 ev->timer_set = 0; 45 ev->timer_set = 0;
43 } 46 }
44 47
45 48
47 { 50 {
48 if (ev->timer_set) { 51 if (ev->timer_set) {
49 ngx_del_timer(ev); 52 ngx_del_timer(ev);
50 } 53 }
51 54
52 ev->rbtree.key = (ngx_int_t) 55 ev->rbtree_key = (ngx_int_t)
53 (ngx_elapsed_msec + timer) / NGX_TIMER_RESOLUTION; 56 (ngx_elapsed_msec + timer) / NGX_TIMER_RESOLUTION;
54 57
55 ngx_rbtree_insert(&ngx_event_timer_rbtree, &ev->rbtree); 58 ngx_rbtree_insert(&ngx_event_timer_rbtree,
59 (ngx_rbtree_t *) &ev->rbtree_key);
56 60
57 ev->timer_set = 1; 61 ev->timer_set = 1;
58 } 62 }
59 63
60 64