comparison src/event/ngx_event_timer.h @ 205:4a9a2b1dd6fa

nginx-0.0.1-2003-12-04-17:53:00 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 04 Dec 2003 14:53:00 +0000
parents 8dee38ea9117
children 9aa426375256
comparison
equal deleted inserted replaced
204:e0bcfb77d6c7 205:4a9a2b1dd6fa
5 #include <ngx_config.h> 5 #include <ngx_config.h>
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 /*
11 * 1 msec - 49 days
12 * 10 msec - 1 years 4 months
13 * 50 msec - 6 years 10 months
14 * 100 msec - 13 years 8 months
15 */
16
17 #define NGX_TIMER_RESOLUTION 50
18
19
20 int ngx_event_timer_init(ngx_cycle_t *cycle);
21 void ngx_event_timer_done(ngx_cycle_t *cycle);
22 int ngx_event_find_timer(void);
23 void ngx_event_expire_timers(ngx_msec_t timer);
24
25 #if 0
10 int ngx_event_timer_init(ngx_cycle_t *cycle); 26 int ngx_event_timer_init(ngx_cycle_t *cycle);
11 void ngx_event_timer_done(ngx_cycle_t *cycle); 27 void ngx_event_timer_done(ngx_cycle_t *cycle);
12 void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer); 28 void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer);
13 int ngx_event_find_timer(void); 29 int ngx_event_find_timer(void);
14 void ngx_event_set_timer_delta(ngx_msec_t timer); 30 void ngx_event_set_timer_delta(ngx_msec_t timer);
15 void ngx_event_expire_timers(ngx_msec_t timer); 31 void ngx_event_expire_timers(ngx_msec_t timer);
32 #endif
16 33
17 34
35 extern ngx_rbtree_t *ngx_event_timer_rbtree;
36
37
38 ngx_inline static void ngx_event_del_timer(ngx_event_t *ev)
39 {
40 ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->rbtree);
41
42 ev->timer_set = 0;
43 }
44
45
46 ngx_inline static void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer)
47 {
48 if (ev->timer_set) {
49 ngx_del_timer(ev);
50 }
51
52 ev->rbtree.key = (ngx_int_t)
53 (ngx_elapsed_msec + timer) / NGX_TIMER_RESOLUTION;
54
55 ngx_rbtree_insert(&ngx_event_timer_rbtree, &ev->rbtree);
56
57 ev->timer_set = 1;
58 }
59
60
61 #if 0
18 62
19 ngx_inline static void ngx_event_del_timer(ngx_event_t *ev) 63 ngx_inline static void ngx_event_del_timer(ngx_event_t *ev)
20 { 64 {
21 #if (NGX_DEBUG_EVENT) 65 #if (NGX_DEBUG_EVENT)
22 ngx_connection_t *c = ev->data; 66 ngx_connection_t *c = ev->data;
43 } 87 }
44 88
45 ev->timer_set = 0; 89 ev->timer_set = 0;
46 } 90 }
47 91
92 #endif
93
48 94
49 #endif /* _NGX_EVENT_TIMER_H_INCLUDED_ */ 95 #endif /* _NGX_EVENT_TIMER_H_INCLUDED_ */