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 }