comparison src/event/modules/ngx_kqueue_module.c @ 14:f8a0d0f31a24

nginx-0.0.1-2002-09-17-21:49:32 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 17 Sep 2002 17:49:32 +0000
parents 055ed05235ae
children 8dd06e2844f5
comparison
equal deleted inserted replaced
13:2aba961a1d34 14:f8a0d0f31a24
99 99
100 int ngx_kqueue_process_events(ngx_log_t *log) 100 int ngx_kqueue_process_events(ngx_log_t *log)
101 { 101 {
102 int events, i; 102 int events, i;
103 u_int timer = 0, delta = 0; 103 u_int timer = 0, delta = 0;
104 ngx_event_t *ev, *nx; 104 ngx_event_t *ev;
105 struct timeval tv; 105 struct timeval tv;
106 struct timespec ts, *tp = NULL; 106 struct timespec ts, *tp = NULL;
107 107
108 if (timer_queue.timer_next != &timer_queue) { 108 if (timer_queue.timer_next != &timer_queue) {
109 timer = timer_queue.timer_next->timer_delta; 109 timer = timer_queue.timer_next->timer_delta;
135 135
136 ngx_log_debug(log, "kevent timer: %d, delta: %d" _ timer _ delta); 136 ngx_log_debug(log, "kevent timer: %d, delta: %d" _ timer _ delta);
137 137
138 if (timer) { 138 if (timer) {
139 if (delta >= timer) { 139 if (delta >= timer) {
140 for (ev = timer_queue.timer_next; 140 for ( ;; ) {
141 ev != &timer_queue && delta >= ev->timer_delta; 141 ev = timer_queue.timer_next;
142 /* void */) 142
143 { 143 if (ev == &timer_queue || delta < ev->timer_delta)
144 break;
145
144 delta -= ev->timer_delta; 146 delta -= ev->timer_delta;
145 nx = ev->timer_next;
146 ngx_del_timer(ev); 147 ngx_del_timer(ev);
147 ev->timedout = 1; 148 ev->timedout = 1;
148 if (ev->event_handler(ev) == NGX_ERROR) 149 if (ev->event_handler(ev) == NGX_ERROR)
149 ev->close_handler(ev); 150 ev->close_handler(ev);
150 ev = nx;
151 } 151 }
152 152
153 } else { 153 } else {
154 timer_queue.timer_next->timer_delta -= delta; 154 timer_queue.timer_next->timer_delta -= delta;
155 } 155 }