Mercurial > hg > nginx
diff src/event/modules/ngx_kqueue_module.c @ 205:4a9a2b1dd6fa
nginx-0.0.1-2003-12-04-17:53:00 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 04 Dec 2003 14:53:00 +0000 |
parents | 11fbd0fc041d |
children | 6e0fef527732 |
line wrap: on
line diff
--- a/src/event/modules/ngx_kqueue_module.c +++ b/src/event/modules/ngx_kqueue_module.c @@ -360,8 +360,10 @@ static int ngx_kqueue_process_events(ngx ts.tv_nsec = (timer % 1000) * 1000000; tp = &ts; +#if 0 ngx_gettimeofday(&tv); delta = tv.tv_sec * 1000 + tv.tv_usec / 1000; +#endif } else { delta = 0; @@ -384,28 +386,31 @@ static int ngx_kqueue_process_events(ngx ngx_gettimeofday(&tv); +#if 1 + delta = ngx_elapsed_msec; +#endif + ngx_elapsed_msec = tv.tv_sec * 1000 + tv.tv_usec / 1000 - ngx_start_msec; + if (ngx_cached_time != tv.tv_sec) { ngx_cached_time = tv.tv_sec; ngx_time_update(); } if (timer) { + delta = ngx_elapsed_msec - delta; + +#if 0 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000 - delta; -#if (NGX_DEBUG_EVENT) - ngx_log_debug(log, "kevent timer: %d, delta: %d" _ timer _ (int) delta); -#endif - -#if 0 /* * The expired timers must be handled before a processing of the events * because the new timers can be added during a processing */ ngx_event_expire_timers((ngx_msec_t) delta); -#endif ngx_event_set_timer_delta((ngx_msec_t) delta); +#endif } else { if (events == 0) { @@ -413,11 +418,11 @@ static int ngx_kqueue_process_events(ngx "kevent() returned no events without timeout"); return NGX_ERROR; } + } #if (NGX_DEBUG_EVENT) ngx_log_debug(log, "kevent timer: %d, delta: %d" _ timer _ (int) delta); #endif - } if (err) { ngx_log_error(NGX_LOG_ALERT, log, err, "kevent() failed"); @@ -510,9 +515,15 @@ static int ngx_kqueue_process_events(ngx } } + if (timer && delta) { + ngx_event_expire_timers((ngx_msec_t) delta); + } + +#if 0 if (timer) { ngx_event_expire_timers((ngx_msec_t) delta); } +#endif return NGX_OK; }