Mercurial > hg > nginx
diff src/event/modules/ngx_poll_module.c @ 245:e6c005b66b3a
nginx-0.0.1-2004-01-30-00:45:01 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 29 Jan 2004 21:45:01 +0000 |
parents | 1119faf4635a |
children | 6753e8cdaa2c |
line wrap: on
line diff
--- a/src/event/modules/ngx_poll_module.c +++ b/src/event/modules/ngx_poll_module.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2002-2003 Igor Sysoev, http://sysoev.ru + * Copyright (C) 2002-2004 Igor Sysoev, http://sysoev.ru/en/ */ @@ -146,9 +146,8 @@ static int ngx_poll_add_event(ngx_event_ #endif } -#if (NGX_DEBUG_EVENT) - ngx_log_debug(ev->log, "add event: %d:%d" _ c->fd _ event); -#endif + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, + "poll add event: fd:%d ev:%d", c->fd, event); if (e == NULL || e->index == NGX_INVALID_INDEX) { event_list[nevents].fd = c->fd; @@ -192,9 +191,8 @@ static int ngx_poll_del_event(ngx_event_ #endif } -#if (NGX_DEBUG_EVENT) - ngx_log_debug(c->log, "del event: %d, %d" _ c->fd _ event); -#endif + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, + "poll del event: fd:%d ev:%d", c->fd, event); if (e == NULL || e->index == NGX_INVALID_INDEX) { if (ev->index < (u_int) --nevents) { @@ -221,28 +219,24 @@ static int ngx_poll_process_events(ngx_l ngx_err_t err; ngx_cycle_t **cycle; ngx_event_t *ev; - ngx_epoch_msec_t delta; + ngx_epoch_msec_t delta; ngx_connection_t *c; - struct timeval tv; + struct timeval tv; timer = ngx_event_find_timer(); + ngx_old_elapsed_msec = ngx_elapsed_msec; - if (timer) { - ngx_gettimeofday(&tv); - delta = tv.tv_sec * 1000 + tv.tv_usec / 1000; - - } else { + if (timer == 0) { timer = (ngx_msec_t) INFTIM; - delta = 0; } -#if (NGX_DEBUG_EVENT) +#if (NGX_DEBUG) for (i = 0; i < nevents; i++) { - ngx_log_debug(log, "poll: %d, %d" _ - event_list[i].fd _ event_list[i].events); + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0, "poll: fd:%d ev:%04X", + event_list[i].fd, event_list[i].events); } - ngx_log_debug(log, "poll timer: %d" _ timer); + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0, "poll timer: %d", timer); #endif ready = poll(event_list, (u_int) nevents, (int) timer); @@ -253,33 +247,30 @@ static int ngx_poll_process_events(ngx_l err = 0; } - ngx_log_debug(log, "poll ready %d" _ ready); + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0, "poll ready %d", ready); ngx_gettimeofday(&tv); ngx_time_update(tv.tv_sec); - if ((int) timer != INFTIM) { - delta = tv.tv_sec * 1000 + tv.tv_usec / 1000 - delta; + delta = ngx_elapsed_msec; + ngx_elapsed_msec = tv.tv_sec * 1000 + tv.tv_usec / 1000 - ngx_start_msec; -#if (NGX_DEBUG_EVENT) - ngx_log_debug(log, "poll timer: %d, delta: %d" _ timer _ (int) delta); -#endif - ngx_event_expire_timers((ngx_msec_t) delta); + if ((int) timer != INFTIM) { + delta = ngx_elapsed_msec - delta; + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0, + "poll timer: %d, delta: %d", timer, (int) delta); } else { if (ready == 0) { ngx_log_error(NGX_LOG_ALERT, log, 0, "poll() returned no events without timeout"); return NGX_ERROR; } - -#if (NGX_DEBUG_EVENT) - ngx_log_debug(log, "poll timer: %d, delta: %d" _ timer _ (int) delta); -#endif } if (err) { - ngx_log_error(NGX_LOG_ALERT, log, err, "poll() failed"); + ngx_log_error((err == NGX_EINTR) ? NGX_LOG_INFO : NGX_LOG_ALERT, + log, err, "poll() failed"); return NGX_ERROR; } @@ -306,11 +297,10 @@ static int ngx_poll_process_events(ngx_l exit(1); } -#if (NGX_DEBUG_EVENT) - ngx_log_debug(log, "poll: fd:%d, ev:%d, rev:%d" _ - event_list[i].fd _ - event_list[i].events _ event_list[i].revents); -#endif + ngx_log_debug3(NGX_LOG_DEBUG_EVENT, log, 0, + "poll: fd:%d ev:%04X rev:%04X", + event_list[i].fd, + event_list[i].events, event_list[i].revents); found = 0; @@ -343,7 +333,7 @@ static int ngx_poll_process_events(ngx_l if (event_list[i].revents & (POLLERR|POLLHUP)) { ngx_log_error(NGX_LOG_ALERT, log, 0, - "strange poll() error on %d:%d:%d", + "strange poll() error on fd:%d ev:%04X rev:%04X", event_list[i].fd, event_list[i].events, event_list[i].revents); } @@ -377,5 +367,9 @@ static int ngx_poll_process_events(ngx_l ngx_log_error(NGX_LOG_ALERT, log, 0, "poll ready != events"); } + if (timer != (ngx_msec_t) INFTIM && delta) { + ngx_event_expire_timers((ngx_msec_t) delta); + } + return NGX_OK; }