annotate src/event/ngx_event_timer.c @ 107:b5be4b0448d3

nginx-0.0.1-2003-07-01-19:00:03 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 01 Jul 2003 15:00:03 +0000
parents 00bee6e7b485
children d7f606e25b99
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
50
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
1
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
2 #include <ngx_config.h>
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
3 #include <ngx_core.h>
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
4 #include <ngx_event.h>
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
5
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
6
53
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
7 static ngx_event_t *ngx_timer_queue;
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
8 static int ngx_timer_cur_queue;
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
9 static int ngx_timer_queue_num;
49
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
12 int ngx_event_timer_init(ngx_log_t *log)
49
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 {
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
14 int i;
105
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
15 ngx_event_t *new_queue;
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
16 ngx_event_conf_t *ecf;
50
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
17
107
b5be4b0448d3 nginx-0.0.1-2003-07-01-19:00:03 import
Igor Sysoev <igor@sysoev.ru>
parents: 105
diff changeset
18 ecf = ngx_event_get_conf(ngx_event_core_module);
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
19
105
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
20 if (ngx_timer_queue_num < ecf->timer_queues) {
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
21 ngx_test_null(new_queue,
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
22 ngx_alloc(ecf->timer_queues * sizeof(ngx_event_t), log),
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
23 NGX_ERROR);
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
24
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
25 for (i = 0; i < ngx_timer_queue_num; i++) {
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
26 new_queue[i] = ngx_timer_queue[i];
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
27 }
50
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
28
105
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
29 if (ngx_timer_queue) {
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
30 ngx_free(ngx_timer_queue);
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
31 }
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
32
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
33 ngx_timer_queue = new_queue;
50
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
34
105
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
35 ngx_timer_queue_num = ecf->timer_queues;
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
36 ngx_timer_cur_queue = 0;
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
37
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
38 for (/* void */; i < ngx_timer_queue_num; i++) {
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
39 ngx_timer_queue[i].timer_prev = &ngx_timer_queue[i];
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
40 ngx_timer_queue[i].timer_next = &ngx_timer_queue[i];
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
41 }
50
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
42 }
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
43
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
44 return NGX_OK;;
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
45 }
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
46
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
47
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
48 void ngx_event_timer_done(ngx_log_t *log)
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
49 {
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
50 ngx_free(ngx_timer_queue);
105
00bee6e7b485 nginx-0.0.1-2003-06-15-22:32:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
51 ngx_timer_queue = NULL;
50
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
52 }
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
53
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
54
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
55 void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer)
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 49
diff changeset
56 {
49
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57 ngx_event_t *e;
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
58
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
59 #if (NGX_DEBUG_EVENT)
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 96
diff changeset
60 ngx_connection_t *c = ev->data;
86
3973260705cc nginx-0.0.1-2003-05-12-19:52:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 77
diff changeset
61 ngx_log_debug(ev->log, "set timer: %d:%d, slot: %d" _
3973260705cc nginx-0.0.1-2003-05-12-19:52:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 77
diff changeset
62 c->fd _ timer _ ngx_timer_cur_queue);
49
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
63 #endif
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
64
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
65 if (ev->timer_next || ev->timer_prev) {
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
66 ngx_log_error(NGX_LOG_ALERT, ev->log, 0, "timer already set");
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
67 return;
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
68 }
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
69
52
9f2728644651 nginx-0.0.1-2003-01-24-19:09:40 import
Igor Sysoev <igor@sysoev.ru>
parents: 51
diff changeset
70 for (e = ngx_timer_queue[ngx_timer_cur_queue].timer_next;
9f2728644651 nginx-0.0.1-2003-01-24-19:09:40 import
Igor Sysoev <igor@sysoev.ru>
parents: 51
diff changeset
71 e != &ngx_timer_queue[ngx_timer_cur_queue] && timer > e->timer_delta;
49
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
72 e = e->timer_next)
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
73 {
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
74 timer -= e->timer_delta;
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
75 }
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
76
52
9f2728644651 nginx-0.0.1-2003-01-24-19:09:40 import
Igor Sysoev <igor@sysoev.ru>
parents: 51
diff changeset
77 ngx_timer_cur_queue++;
53
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
78 if (ngx_timer_cur_queue >= ngx_timer_queue_num) {
52
9f2728644651 nginx-0.0.1-2003-01-24-19:09:40 import
Igor Sysoev <igor@sysoev.ru>
parents: 51
diff changeset
79 ngx_timer_cur_queue = 0;
9f2728644651 nginx-0.0.1-2003-01-24-19:09:40 import
Igor Sysoev <igor@sysoev.ru>
parents: 51
diff changeset
80 }
9f2728644651 nginx-0.0.1-2003-01-24-19:09:40 import
Igor Sysoev <igor@sysoev.ru>
parents: 51
diff changeset
81
49
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
82 ev->timer_delta = timer;
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
83
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
84 ev->timer_next = e;
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
85 ev->timer_prev = e->timer_prev;
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
86
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
87 e->timer_prev->timer_next = ev;
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
88 e->timer_prev = ev;
c091d5b853c8 nginx-0.0.1-2003-01-21-20:36:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
89 }
51
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
90
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
91
53
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
92 int ngx_event_find_timer(void)
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
93 {
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
94 int i;
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
95 ngx_msec_t timer;
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
96
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
97 timer = NGX_MAX_MSEC;
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
98
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
99 for (i = 0; i < ngx_timer_queue_num; i++) {
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
100 if (ngx_timer_queue[i].timer_next == &ngx_timer_queue[i]) {
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
101 continue;
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
102 }
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
103
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
104 if (timer > ngx_timer_queue[i].timer_next->timer_delta) {
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
105 timer = ngx_timer_queue[i].timer_next->timer_delta;
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
106 }
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
107 }
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
108
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
109 if (timer == NGX_MAX_MSEC) {
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
110 return 0;
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
111 } else {
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
112 return timer;
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
113 }
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
114 }
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
115
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
116
51
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
117 void ngx_event_expire_timers(ngx_msec_t timer)
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
118 {
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
119 int i;
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
120 ngx_msec_t delta;
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
121 ngx_event_t *ev;
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
122
53
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 52
diff changeset
123 for (i = 0; i < ngx_timer_queue_num; i++) {
51
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
124
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
125 delta = timer;
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
126
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
127 for ( ;; ) {
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
128 ev = ngx_timer_queue[i].timer_next;
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
129
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
130 if (ev == &ngx_timer_queue[i]) {
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
131 break;
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
132 }
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
133
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
134 if (ev->timer_delta > delta) {
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
135 ev->timer_delta -= delta;
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
136 break;
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
137 }
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
138
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
139 delta -= ev->timer_delta;
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
140
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
141 ngx_del_timer(ev);
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
142 ev->timer_set = 0;
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
143
77
57c2e18d3572 nginx-0.0.1-2003-04-17-21:59:35 import
Igor Sysoev <igor@sysoev.ru>
parents: 53
diff changeset
144 if (ev->delayed) {
57c2e18d3572 nginx-0.0.1-2003-04-17-21:59:35 import
Igor Sysoev <igor@sysoev.ru>
parents: 53
diff changeset
145 ev->delayed = 0;
57c2e18d3572 nginx-0.0.1-2003-04-17-21:59:35 import
Igor Sysoev <igor@sysoev.ru>
parents: 53
diff changeset
146 if (ev->ready == 0) {
57c2e18d3572 nginx-0.0.1-2003-04-17-21:59:35 import
Igor Sysoev <igor@sysoev.ru>
parents: 53
diff changeset
147 continue;
57c2e18d3572 nginx-0.0.1-2003-04-17-21:59:35 import
Igor Sysoev <igor@sysoev.ru>
parents: 53
diff changeset
148 }
57c2e18d3572 nginx-0.0.1-2003-04-17-21:59:35 import
Igor Sysoev <igor@sysoev.ru>
parents: 53
diff changeset
149
57c2e18d3572 nginx-0.0.1-2003-04-17-21:59:35 import
Igor Sysoev <igor@sysoev.ru>
parents: 53
diff changeset
150 } else {
57c2e18d3572 nginx-0.0.1-2003-04-17-21:59:35 import
Igor Sysoev <igor@sysoev.ru>
parents: 53
diff changeset
151 ev->timedout = 1;
57c2e18d3572 nginx-0.0.1-2003-04-17-21:59:35 import
Igor Sysoev <igor@sysoev.ru>
parents: 53
diff changeset
152 }
51
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
153
87
5f6d848dcbef nginx-0.0.1-2003-05-13-20:02:32 import
Igor Sysoev <igor@sysoev.ru>
parents: 86
diff changeset
154 ev->event_handler(ev);
51
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
155 }
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
156 }
a6afbb8a2ada nginx-0.0.1-2003-01-24-09:20:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
157 }