Mercurial > hg > nginx
comparison src/event/modules/ngx_epoll_module.c @ 316:a0beefedaf94
nginx-0.0.3-2004-04-15-00:34:05 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 14 Apr 2004 20:34:05 +0000 |
parents | 39b6f2df45c0 |
children | 1308b98496a2 |
comparison
equal
deleted
inserted
replaced
315:39b6f2df45c0 | 316:a0beefedaf94 |
---|---|
351 ngx_msec_t timer; | 351 ngx_msec_t timer; |
352 struct timeval tv; | 352 struct timeval tv; |
353 ngx_connection_t *c; | 353 ngx_connection_t *c; |
354 ngx_epoch_msec_t delta; | 354 ngx_epoch_msec_t delta; |
355 | 355 |
356 timer = ngx_event_find_timer(); | 356 for ( ;; ) { |
357 timer = ngx_event_find_timer(); | |
358 | |
359 if (timer != 0) { | |
360 break; | |
361 } | |
362 | |
363 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, | |
364 "epoll expired timer"); | |
365 | |
366 ngx_event_expire_timers(0); | |
367 } | |
368 | |
369 /* NGX_TIMER_INFINITE == INFTIM */ | |
370 | |
371 if (timer == NGX_TIMER_INFINITE) { | |
372 expire = 0; | |
373 | |
374 } else { | |
375 expire = 1; | |
376 } | |
377 | |
357 ngx_old_elapsed_msec = ngx_elapsed_msec; | 378 ngx_old_elapsed_msec = ngx_elapsed_msec; |
358 | |
359 if (timer == -1) { | |
360 timer = 0; | |
361 expire = 1; | |
362 | |
363 } else if (timer == 0) { | |
364 timer = (ngx_msec_t) -1; | |
365 expire = 0; | |
366 | |
367 } else { | |
368 expire = 1; | |
369 } | |
370 | 379 |
371 if (ngx_accept_mutex) { | 380 if (ngx_accept_mutex) { |
372 if (ngx_trylock_accept_mutex(cycle) == NGX_ERROR) { | 381 if (ngx_trylock_accept_mutex(cycle) == NGX_ERROR) { |
373 return NGX_ERROR; | 382 return NGX_ERROR; |
374 } | 383 } |
375 | 384 |
376 if (ngx_accept_mutex_held == 0 | 385 if (ngx_accept_mutex_held == 0 |
377 && (timer == -1 || timer > ngx_accept_mutex_delay)) | 386 && (timer == NGX_TIMER_INFINITE || timer > ngx_accept_mutex_delay)) |
378 { | 387 { |
379 timer = ngx_accept_mutex_delay; | 388 timer = ngx_accept_mutex_delay; |
380 expire = 0; | 389 expire = 0; |
381 } | 390 } |
382 } | 391 } |
396 ngx_time_update(tv.tv_sec); | 405 ngx_time_update(tv.tv_sec); |
397 | 406 |
398 delta = ngx_elapsed_msec; | 407 delta = ngx_elapsed_msec; |
399 ngx_elapsed_msec = tv.tv_sec * 1000 + tv.tv_usec / 1000 - ngx_start_msec; | 408 ngx_elapsed_msec = tv.tv_sec * 1000 + tv.tv_usec / 1000 - ngx_start_msec; |
400 | 409 |
401 if (timer != (ngx_msec_t) -1) { | 410 if (timer != NGX_TIMER_INFINITE) { |
402 delta = ngx_elapsed_msec - delta; | 411 delta = ngx_elapsed_msec - delta; |
403 | 412 |
404 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0, | 413 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0, |
405 "epoll timer: %d, delta: %d", timer, (int) delta); | 414 "epoll timer: %d, delta: %d", timer, (int) delta); |
406 } else { | 415 } else { |