Mercurial > hg > nginx
diff src/event/modules/ngx_select_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 | e885208c518b |
line wrap: on
line diff
--- a/src/event/modules/ngx_select_module.c +++ b/src/event/modules/ngx_select_module.c @@ -131,9 +131,8 @@ static int ngx_select_add_event(ngx_even c = ev->data; -#if (NGX_DEBUG_EVENT) - ngx_log_debug(ev->log, "select fd:%d event:%d" _ c->fd _ event); -#endif + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, + "select add event fd:%d ev:%d", c->fd, event); if (ev->index != NGX_INVALID_INDEX) { ngx_log_error(NGX_LOG_ALERT, ev->log, 0, @@ -197,9 +196,8 @@ static int ngx_select_del_event(ngx_even return NGX_OK; } -#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, + "select del event fd:%d ev:%d", c->fd, event); #if (WIN32) @@ -259,19 +257,11 @@ static int ngx_select_process_events(ngx ngx_old_elapsed_msec = ngx_elapsed_msec; if (timer) { -#if (HAVE_SELECT_CHANGE_TIMEOUT) - delta = 0; -#else - ngx_gettimeofday(&tv); - delta = tv.tv_sec * 1000 + tv.tv_usec / 1000; -#endif - tv.tv_sec = timer / 1000; tv.tv_usec = (timer % 1000) * 1000; tp = &tv; } else { - delta = 0; tp = NULL; } @@ -284,21 +274,21 @@ static int ngx_select_process_events(ngx } } -#if (NGX_DEBUG_EVENT) - ngx_log_debug(log, "change max_fd: %d" _ max_fd); -#endif + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0, + "change max_fd: %d", max_fd); } #endif -#if (NGX_DEBUG_EVENT) +#if (NGX_DEBUG) for (i = 0; i < nevents; i++) { ev = event_index[i]; c = (ngx_connection_t *) ev->data; - ngx_log_debug(log, "select: %d:%d" _ c->fd _ ev->write); + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0, + "select event: fd:%d wr:%d", c->fd,ev->write); } +#endif - ngx_log_debug(log, "select timer: %d" _ timer); -#endif + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0, "select timer: %d", timer); #if (WIN32) ready = select(0, &work_read_fd_set, &work_write_fd_set, NULL, tp); @@ -312,10 +302,6 @@ static int ngx_select_process_events(ngx err = 0; } -#if (NGX_DEBUG_EVENT) - ngx_log_debug(log, "select ready %d" _ ready); -#endif - #if (HAVE_SELECT_CHANGE_TIMEOUT) if (timer) { @@ -330,51 +316,36 @@ static int ngx_select_process_events(ngx if (deltas > 1000) { ngx_gettimeofday(&tv); deltas = tv.tv_usec / 1000; - - if (ngx_cached_time != tv.tv_sec) { - ngx_cached_time = tv.tv_sec; - ngx_time_update(); - } + ngx_time_update(tv.tv_sec); } -#if (NGX_DEBUG_EVENT) - ngx_log_debug(log, "select timer: %d, delta: %d" _ timer _ (int) delta); -#endif - - ngx_event_expire_timers((ngx_msec_t) delta); + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0, + "select timer: %d, delta: %d", timer, (int) delta); } else { ngx_gettimeofday(&tv); - - if (ngx_cached_time != tv.tv_sec) { - ngx_cached_time = tv.tv_sec; - ngx_time_update(); - } + ngx_time_update(tv.tv_sec); if (ready == 0) { ngx_log_error(NGX_LOG_ALERT, log, 0, "select() returned no events without timeout"); return NGX_ERROR; } - -#if (NGX_DEBUG_EVENT) - ngx_log_debug(log, "select timer: %d, delta: %d" _ timer _ (int) delta); -#endif } -#else /* HAVE_SELECT_CHANGE_TIMEOUT */ +#else /* !(HAVE_SELECT_CHANGE_TIMEOUT) */ ngx_gettimeofday(&tv); ngx_time_update(tv.tv_sec); - if (timer) { - 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, "select timer: %d, delta: %d" _ timer _ (int) delta); -#endif + if (timer) { + delta = ngx_elapsed_msec - delta; - ngx_event_expire_timers((ngx_msec_t) delta); + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0, + "select timer: %d, delta: %d", timer, (int) delta); } else { if (ready == 0) { @@ -382,16 +353,15 @@ static int ngx_select_process_events(ngx "select() returned no events without timeout"); return NGX_ERROR; } - -#if (NGX_DEBUG_EVENT) - ngx_log_debug(log, "select timer: %d, delta: %d" _ timer _ (int) delta); -#endif } #endif /* HAVE_SELECT_CHANGE_TIMEOUT */ + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0, "select ready %d", ready); + if (err) { - ngx_log_error(NGX_LOG_ALERT, log, err, "select() failed"); + ngx_log_error((err == NGX_EINTR) ? NGX_LOG_INFO : NGX_LOG_ALERT, + log, err, "select() failed"); return NGX_ERROR; } @@ -405,17 +375,15 @@ static int ngx_select_process_events(ngx if (ev->write) { if (FD_ISSET(c->fd, &work_write_fd_set)) { found = 1; -#if (NGX_DEBUG_EVENT) - ngx_log_debug(log, "select write %d" _ c->fd); -#endif + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0, + "select write %d", c->fd); } } else { if (FD_ISSET(c->fd, &work_read_fd_set)) { found = 1; -#if (NGX_DEBUG_EVENT) - ngx_log_debug(log, "select read %d" _ c->fd); -#endif + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0, + "select read %d", c->fd); } } @@ -453,6 +421,10 @@ static int ngx_select_process_events(ngx ngx_log_error(NGX_LOG_ALERT, log, 0, "select ready != events"); } + if (timer && delta) { + ngx_event_expire_timers((ngx_msec_t) delta); + } + return NGX_OK; }