comparison src/event/modules/ngx_poll_module.c @ 179:9f3a78b06c48

nginx-0.0.1-2003-11-11-21:13:43 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 11 Nov 2003 18:13:43 +0000
parents a8ff48d26cca
children 2357fa41738a
comparison
equal deleted inserted replaced
178:a8ff48d26cca 179:9f3a78b06c48
222 222
223 static int ngx_poll_process_events(ngx_log_t *log) 223 static int ngx_poll_process_events(ngx_log_t *log)
224 { 224 {
225 int ready, found, j; 225 int ready, found, j;
226 u_int nready, i; 226 u_int nready, i;
227 ngx_msec_t timer, delta; 227 ngx_msec_t timer;
228 ngx_err_t err; 228 ngx_err_t err;
229 ngx_cycle_t **cycle; 229 ngx_cycle_t **cycle;
230 ngx_event_t *ev; 230 ngx_event_t *ev;
231 ngx_epoch_msec_t delta;
231 ngx_connection_t *c; 232 ngx_connection_t *c;
233 struct timeval tv;
232 234
233 timer = ngx_event_find_timer(); 235 timer = ngx_event_find_timer();
234 236
235 if (timer) { 237 if (timer) {
236 delta = ngx_msec(); 238 ngx_gettimeofday(&tv);
239 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000;
237 240
238 } else { 241 } else {
239 timer = INFTIM; 242 timer = INFTIM;
240 delta = 0; 243 delta = 0;
241 } 244 }
257 err = 0; 260 err = 0;
258 } 261 }
259 262
260 ngx_log_debug(log, "poll ready %d" _ ready); 263 ngx_log_debug(log, "poll ready %d" _ ready);
261 264
262 /* TODO: time */ 265 ngx_gettimeofday(&tv);
266
267 if (ngx_cached_time != tv.tv_sec) {
268 ngx_cached_time = tv.tv_sec;
269 ngx_time_update();
270 }
263 271
264 if ((int) timer != INFTIM) { 272 if ((int) timer != INFTIM) {
265 delta = ngx_msec() - delta; 273 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000 - delta;
266 274
267 #if (NGX_DEBUG_EVENT) 275 #if (NGX_DEBUG_EVENT)
268 ngx_log_debug(log, "poll timer: %d, delta: %d" _ timer _ delta); 276 ngx_log_debug(log, "poll timer: %d, delta: %d" _ timer _ (int) delta);
269 #endif 277 #endif
270 ngx_event_expire_timers(delta); 278 ngx_event_expire_timers((ngx_msec_t) delta);
271 279
272 } else { 280 } else {
273 if (ready == 0) { 281 if (ready == 0) {
274 ngx_log_error(NGX_LOG_ALERT, log, 0, 282 ngx_log_error(NGX_LOG_ALERT, log, 0,
275 "poll() returned no events without timeout"); 283 "poll() returned no events without timeout");
276 return NGX_ERROR; 284 return NGX_ERROR;
277 } 285 }
278 286
279 #if (NGX_DEBUG_EVENT) 287 #if (NGX_DEBUG_EVENT)
280 ngx_log_debug(log, "poll timer: %d, delta: %d" _ timer _ delta); 288 ngx_log_debug(log, "poll timer: %d, delta: %d" _ timer _ (int) delta);
281 #endif 289 #endif
282 } 290 }
283 291
284 if (err) { 292 if (err) {
285 ngx_log_error(NGX_LOG_ALERT, log, err, "poll() failed"); 293 ngx_log_error(NGX_LOG_ALERT, log, err, "poll() failed");