comparison src/event/ngx_event_timer.c @ 105:00bee6e7b485

nginx-0.0.1-2003-06-15-22:32:13 import
author Igor Sysoev <igor@sysoev.ru>
date Sun, 15 Jun 2003 18:32:13 +0000
parents 6dfda4cf5200
children b5be4b0448d3
comparison
equal deleted inserted replaced
104:7db96f59bc29 105:00bee6e7b485
10 10
11 11
12 int ngx_event_timer_init(ngx_log_t *log) 12 int ngx_event_timer_init(ngx_log_t *log)
13 { 13 {
14 int i; 14 int i;
15 ngx_event_t *new_queue;
15 ngx_event_conf_t *ecf; 16 ngx_event_conf_t *ecf;
16 17
17 ecf = ngx_event_get_conf(ngx_event_module); 18 ecf = ngx_event_get_conf(ngx_event_module);
18 19
19 ngx_timer_queue_num = ecf->timer_queues; 20 if (ngx_timer_queue_num < ecf->timer_queues) {
20 ngx_timer_cur_queue = 0; 21 ngx_test_null(new_queue,
22 ngx_alloc(ecf->timer_queues * sizeof(ngx_event_t), log),
23 NGX_ERROR);
21 24
22 ngx_test_null(ngx_timer_queue, 25 for (i = 0; i < ngx_timer_queue_num; i++) {
23 ngx_alloc(ngx_timer_queue_num * sizeof(ngx_event_t), log), 26 new_queue[i] = ngx_timer_queue[i];
24 NGX_ERROR); 27 }
25 28
26 for (i = 0; i < ngx_timer_queue_num; i++) { 29 if (ngx_timer_queue) {
27 ngx_timer_queue[i].timer_prev = &ngx_timer_queue[i]; 30 ngx_free(ngx_timer_queue);
28 ngx_timer_queue[i].timer_next = &ngx_timer_queue[i]; 31 }
32
33 ngx_timer_queue = new_queue;
34
35 ngx_timer_queue_num = ecf->timer_queues;
36 ngx_timer_cur_queue = 0;
37
38 for (/* void */; i < ngx_timer_queue_num; i++) {
39 ngx_timer_queue[i].timer_prev = &ngx_timer_queue[i];
40 ngx_timer_queue[i].timer_next = &ngx_timer_queue[i];
41 }
29 } 42 }
30 43
31 return NGX_OK;; 44 return NGX_OK;;
32 } 45 }
33 46
34 47
35 void ngx_event_timer_done(ngx_log_t *log) 48 void ngx_event_timer_done(ngx_log_t *log)
36 { 49 {
37 ngx_free(ngx_timer_queue); 50 ngx_free(ngx_timer_queue);
51 ngx_timer_queue = NULL;
38 } 52 }
39 53
40 54
41 void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer) 55 void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer)
42 { 56 {