Mercurial > hg > nginx-quic
comparison src/event/modules/ngx_kqueue_module.c @ 7:b5481d6fbbd4
nginx-0.0.1-2002-08-29-20:59:54 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 29 Aug 2002 16:59:54 +0000 |
parents | 669801705ab1 |
children | 708f8bb772ec |
comparison
equal
deleted
inserted
replaced
6:669801705ab1 | 7:b5481d6fbbd4 |
---|---|
6 NEED ? : unify change_list and event_list: | 6 NEED ? : unify change_list and event_list: |
7 event_list = change_list; | 7 event_list = change_list; |
8 */ | 8 */ |
9 | 9 |
10 #include <ngx_config.h> | 10 #include <ngx_config.h> |
11 #include <ngx_core.h> | |
11 #include <ngx_types.h> | 12 #include <ngx_types.h> |
12 #include <ngx_log.h> | 13 #include <ngx_log.h> |
13 #include <ngx_connection.h> | 14 #include <ngx_connection.h> |
14 #include <ngx_event.h> | 15 #include <ngx_event.h> |
15 #include <ngx_kqueue_module.h> | 16 #include <ngx_kqueue_module.h> |
17 #if (USE_KQUEUE) && !(HAVE_KQUEUE) | 18 #if (USE_KQUEUE) && !(HAVE_KQUEUE) |
18 #error "kqueue is not supported on this platform" | 19 #error "kqueue is not supported on this platform" |
19 #endif | 20 #endif |
20 | 21 |
21 static void ngx_add_timer_core(ngx_event_t *ev, u_int timer); | 22 static void ngx_add_timer_core(ngx_event_t *ev, u_int timer); |
22 static void ngx_inline ngx_del_timer(ngx_event_t *ev); | |
23 | 23 |
24 | 24 |
25 static int kq; | 25 static int kq; |
26 static struct kevent *change_list, *event_list; | 26 static struct kevent *change_list, *event_list; |
27 static int nchanges, nevents; | 27 static int nchanges, nevents; |
143 "ngx_kqueue_process_events: " | 143 "ngx_kqueue_process_events: " |
144 "kevent returns no events without timeout"); | 144 "kevent returns no events without timeout"); |
145 } | 145 } |
146 | 146 |
147 ngx_log_debug(log, "ngx_kqueue_process_events: " | 147 ngx_log_debug(log, "ngx_kqueue_process_events: " |
148 "timer: %d, delta: %d" _ timer _ delta); | 148 "timer: %d, delta: %d" _ timer _ delta); |
149 | 149 |
150 if (timer) { | 150 if (timer) { |
151 if (delta >= timer) { | 151 if (delta >= timer) { |
152 for (ev = timer_queue.timer_next; | 152 for (ev = timer_queue.timer_next; |
153 ev != &timer_queue && delta >= ev->timer_delta; | 153 ev != &timer_queue && delta >= ev->timer_delta; |
156 delta -= ev->timer_delta; | 156 delta -= ev->timer_delta; |
157 nx = ev->timer_next; | 157 nx = ev->timer_next; |
158 ngx_del_timer(ev); | 158 ngx_del_timer(ev); |
159 #if 1 | 159 #if 1 |
160 ev->timedout = 1; | 160 ev->timedout = 1; |
161 if (ev->event_handler(ev) == -1) | 161 if (ev->event_handler(ev) == NGX_ERROR) |
162 ev->close_handler(ev); | 162 ev->close_handler(ev); |
163 #else | 163 #else |
164 if (ev->timer_handler(ev) == -1) | 164 if (ev->timer_handler(ev) == -1) |
165 ev->close_handler(ev); | 165 ev->close_handler(ev); |
166 #endif | 166 #endif |
198 if (event_list[i].flags & EV_EOF) { | 198 if (event_list[i].flags & EV_EOF) { |
199 ev->eof = 1; | 199 ev->eof = 1; |
200 ev->error = event_list[i].fflags; | 200 ev->error = event_list[i].fflags; |
201 } | 201 } |
202 | 202 |
203 if (ev->event_handler(ev) == -1) | 203 if (ev->event_handler(ev) == NGX_ERROR) |
204 ev->close_handler(ev); | 204 ev->close_handler(ev); |
205 | 205 |
206 break; | 206 break; |
207 | 207 |
208 default: | 208 default: |
231 | 231 |
232 e->timer_prev->timer_next = ev; | 232 e->timer_prev->timer_next = ev; |
233 e->timer_prev = ev; | 233 e->timer_prev = ev; |
234 } | 234 } |
235 | 235 |
236 #if 0 | |
236 static void ngx_inline ngx_del_timer(ngx_event_t *ev) | 237 static void ngx_inline ngx_del_timer(ngx_event_t *ev) |
237 { | 238 { |
238 if (ev->timer_prev) | 239 if (ev->timer_prev) |
239 ev->timer_prev->timer_next = ev->timer_next; | 240 ev->timer_prev->timer_next = ev->timer_next; |
240 | 241 |
241 if (ev->timer_next) { | 242 if (ev->timer_next) { |
242 ev->timer_next->timer_prev = ev->timer_prev; | 243 ev->timer_next->timer_prev = ev->timer_prev; |
244 ev->timer_next = NULL; | |
245 } | |
246 | |
247 if (ev->timer_prev) | |
243 ev->timer_prev = NULL; | 248 ev->timer_prev = NULL; |
244 } | 249 } |
245 | 250 #endif |
246 if (ev->timer_prev) | |
247 ev->timer_next = NULL; | |
248 } |