Mercurial > hg > nginx
comparison src/event/ngx_event_timer.c @ 91:637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 19 May 2003 16:39:14 +0000 |
parents | 5f6d848dcbef |
children | a23d010f356d |
comparison
equal
deleted
inserted
replaced
90:37530da31268 | 91:637625a2acdb |
---|---|
7 #include <ngx_connection.h> | 7 #include <ngx_connection.h> |
8 #include <ngx_event.h> | 8 #include <ngx_event.h> |
9 | 9 |
10 #include <ngx_event_timer.h> | 10 #include <ngx_event_timer.h> |
11 | 11 |
12 /* STUB */ | |
13 #define NGX_TIMER_QUEUE_NUM 5 | |
14 | 12 |
15 /* should be per-thread */ | |
16 static ngx_event_t *ngx_timer_queue; | 13 static ngx_event_t *ngx_timer_queue; |
17 static int ngx_timer_cur_queue; | 14 static int ngx_timer_cur_queue; |
18 /* */ | |
19 static int ngx_timer_queue_num; | 15 static int ngx_timer_queue_num; |
20 | 16 |
21 | 17 |
22 ngx_event_t *ngx_event_init_timer(ngx_log_t *log) | 18 int ngx_event_timer_init(ngx_log_t *log) |
23 { | 19 { |
24 int i; | 20 int i; |
21 ngx_event_conf_t *ecf; | |
25 | 22 |
26 ngx_timer_queue_num = NGX_TIMER_QUEUE_NUM; | 23 ecf = ngx_event_get_conf(ngx_event_module_ctx); |
24 | |
25 ngx_timer_queue_num = ecf->timer_queues; | |
27 ngx_timer_cur_queue = 0; | 26 ngx_timer_cur_queue = 0; |
28 | 27 |
29 ngx_test_null(ngx_timer_queue, | 28 ngx_test_null(ngx_timer_queue, |
30 ngx_alloc(ngx_timer_queue_num * sizeof(ngx_event_t), log), | 29 ngx_alloc(ngx_timer_queue_num * sizeof(ngx_event_t), log), |
31 NULL); | 30 NGX_ERROR); |
32 | 31 |
33 for (i = 0; i < ngx_timer_queue_num; i++) { | 32 for (i = 0; i < ngx_timer_queue_num; i++) { |
34 ngx_timer_queue[i].timer_prev = &ngx_timer_queue[i]; | 33 ngx_timer_queue[i].timer_prev = &ngx_timer_queue[i]; |
35 ngx_timer_queue[i].timer_next = &ngx_timer_queue[i]; | 34 ngx_timer_queue[i].timer_next = &ngx_timer_queue[i]; |
36 } | 35 } |
37 | 36 |
38 return ngx_timer_queue; | 37 return NGX_OK;; |
38 } | |
39 | |
40 | |
41 void ngx_event_timer_done(ngx_log_t *log) | |
42 { | |
43 ngx_free(ngx_timer_queue); | |
39 } | 44 } |
40 | 45 |
41 | 46 |
42 void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer) | 47 void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer) |
43 { | 48 { |
124 } | 129 } |
125 | 130 |
126 delta -= ev->timer_delta; | 131 delta -= ev->timer_delta; |
127 | 132 |
128 ngx_del_timer(ev); | 133 ngx_del_timer(ev); |
134 ev->timer_set = 0; | |
135 | |
129 if (ev->delayed) { | 136 if (ev->delayed) { |
130 ev->delayed = 0; | 137 ev->delayed = 0; |
131 if (ev->ready == 0) { | 138 if (ev->ready == 0) { |
132 continue; | 139 continue; |
133 } | 140 } |