Mercurial > hg > nginx
comparison src/event/ngx_event_timer.c @ 49:c091d5b853c8
nginx-0.0.1-2003-01-21-20:36:01 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 21 Jan 2003 17:36:01 +0000 |
parents | |
children | b288069a8696 |
comparison
equal
deleted
inserted
replaced
48:5365b189a97e | 49:c091d5b853c8 |
---|---|
1 | |
2 | |
3 void ngx_add_timer(ngx_event_t *ev, ngx_msec_t timer) | |
4 { | |
5 ngx_event_t *e; | |
6 | |
7 #if (NGX_DEBUG_EVENT) | |
8 ngx_connection_t *c = (ngx_connection_t *) ev->data; | |
9 ngx_log_debug(ev->log, "set timer: %d:%d" _ c->fd _ timer); | |
10 #endif | |
11 | |
12 if (ev->timer_next || ev->timer_prev) { | |
13 ngx_log_error(NGX_LOG_ALERT, ev->log, 0, "timer already set"); | |
14 return; | |
15 } | |
16 | |
17 n = timer % ngx_timer_hash_size; | |
18 | |
19 for (e = timer_queue[n].timer_next; | |
20 e != &timer_queue[n] && timer > e->timer_delta; | |
21 e = e->timer_next) | |
22 { | |
23 timer -= e->timer_delta; | |
24 } | |
25 | |
26 ev->timer_delta = timer; | |
27 | |
28 ev->timer_next = e; | |
29 ev->timer_prev = e->timer_prev; | |
30 | |
31 e->timer_prev->timer_next = ev; | |
32 e->timer_prev = ev; | |
33 } |