Mercurial > hg > nginx
comparison src/event/ngx_event_timer.c @ 50:b288069a8696
nginx-0.0.1-2003-01-23-21:47:54 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 23 Jan 2003 18:47:54 +0000 |
parents | c091d5b853c8 |
children | a6afbb8a2ada |
comparison
equal
deleted
inserted
replaced
49:c091d5b853c8 | 50:b288069a8696 |
---|---|
1 | |
2 #include <ngx_config.h> | |
3 | |
4 #include <ngx_core.h> | |
5 #include <ngx_log.h> | |
6 #include <ngx_alloc.h> | |
7 #include <ngx_connection.h> | |
8 #include <ngx_event.h> | |
9 | |
10 #include <ngx_event_timer.h> | |
11 | |
12 /* STUB */ | |
13 #define NGX_TIMER_HASH_SIZE 5 | |
14 | |
15 ngx_event_t *ngx_timer_queue; | |
16 int ngx_timer_hash_size; | |
1 | 17 |
2 | 18 |
3 void ngx_add_timer(ngx_event_t *ev, ngx_msec_t timer) | 19 int ngx_event_init_timer(ngx_log_t *log) |
4 { | 20 { |
21 int i; | |
22 | |
23 ngx_timer_hash_size = NGX_TIMER_HASH_SIZE; | |
24 | |
25 ngx_test_null(ngx_timer_queue, | |
26 ngx_alloc(ngx_timer_hash_size * sizeof(ngx_event_t), log), | |
27 NGX_ERROR); | |
28 | |
29 for (i = 0; i < ngx_timer_hash_size; i++) { | |
30 ngx_timer_queue[i].timer_prev = &ngx_timer_queue[i]; | |
31 ngx_timer_queue[i].timer_next = &ngx_timer_queue[i]; | |
32 } | |
33 | |
34 return NGX_OK; | |
35 } | |
36 | |
37 | |
38 void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer) | |
39 { | |
40 int n; | |
5 ngx_event_t *e; | 41 ngx_event_t *e; |
6 | 42 |
7 #if (NGX_DEBUG_EVENT) | 43 #if (NGX_DEBUG_EVENT) |
8 ngx_connection_t *c = (ngx_connection_t *) ev->data; | 44 ngx_connection_t *c = (ngx_connection_t *) ev->data; |
9 ngx_log_debug(ev->log, "set timer: %d:%d" _ c->fd _ timer); | 45 ngx_log_debug(ev->log, "set timer: %d:%d" _ c->fd _ timer); |
14 return; | 50 return; |
15 } | 51 } |
16 | 52 |
17 n = timer % ngx_timer_hash_size; | 53 n = timer % ngx_timer_hash_size; |
18 | 54 |
19 for (e = timer_queue[n].timer_next; | 55 for (e = ngx_timer_queue[n].timer_next; |
20 e != &timer_queue[n] && timer > e->timer_delta; | 56 e != &ngx_timer_queue[n] && timer > e->timer_delta; |
21 e = e->timer_next) | 57 e = e->timer_next) |
22 { | 58 { |
23 timer -= e->timer_delta; | 59 timer -= e->timer_delta; |
24 } | 60 } |
25 | 61 |