Mercurial > hg > nginx
diff src/event/modules/ngx_epoll_module.c @ 305:4b1a3a4acc60
nginx-0.0.3-2004-04-02-19:13:20 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 02 Apr 2004 15:13:20 +0000 |
parents | d30f2c39caae |
children | 6b91bfbc4123 |
line wrap: on
line diff
--- a/src/event/modules/ngx_epoll_module.c Fri Apr 02 05:14:40 2004 +0000 +++ b/src/event/modules/ngx_epoll_module.c Fri Apr 02 15:13:20 2004 +0000 @@ -76,7 +76,7 @@ static int ngx_epoll_del_event(ngx_event_t *ev, int event, u_int flags); static int ngx_epoll_add_connection(ngx_connection_t *c); static int ngx_epoll_del_connection(ngx_connection_t *c); -static int ngx_epoll_process_events(ngx_log_t *log); +static int ngx_epoll_process_events(ngx_cycle_t *cycle); static void *ngx_epoll_create_conf(ngx_cycle_t *cycle); static char *ngx_epoll_init_conf(ngx_cycle_t *cycle, void *conf); @@ -337,14 +337,13 @@ #endif -int ngx_epoll_process_events(ngx_log_t *log) +int ngx_epoll_process_events(ngx_cycle_t *cycle) { int events; ngx_int_t instance, i; size_t n; ngx_msec_t timer; ngx_err_t err; - ngx_cycle_t **cycle; struct timeval tv; ngx_connection_t *c; ngx_epoch_msec_t delta; @@ -357,7 +356,8 @@ timer = (ngx_msec_t) -1; } - ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0, "epoll timer: %d", timer); + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, + "epoll timer: %d", timer); events = epoll_wait(ep, event_list, nevents, timer); @@ -376,11 +376,11 @@ if (timer != (ngx_msec_t) -1) { delta = ngx_elapsed_msec - delta; - ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0, + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "epoll timer: %d, delta: %d", timer, (int) delta); } else { if (events == 0) { - ngx_log_error(NGX_LOG_ALERT, log, 0, + ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, "epoll_wait() returned no events without timeout"); return NGX_ERROR; } @@ -388,7 +388,7 @@ if (err) { ngx_log_error((err == NGX_EINTR) ? NGX_LOG_INFO : NGX_LOG_ALERT, - log, err, "epoll_wait() failed"); + cycle->log, err, "epoll_wait() failed"); return NGX_ERROR; } @@ -398,7 +398,15 @@ instance = (uintptr_t) c & 1; c = (ngx_connection_t *) ((uintptr_t) c & (uintptr_t) ~1); - ngx_log_debug3(NGX_LOG_DEBUG_EVENT, log, 0, + if (event_list[i].events & EPOLLIN) { + c->read->returned_instance = instance; + } + + if (event_list[i].events & EPOLLOUT) { + c->write->returned_instance = instance; + } + + ngx_log_debug3(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "epoll: fd:%d ev:%04X d:" PTR_FMT, c->fd, event_list[i].events, event_list[i].data); @@ -409,19 +417,19 @@ * that was just closed in this iteration */ - ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0, + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "epoll: stale event " PTR_FMT, c); continue; } if (event_list[i].events & (EPOLLERR|EPOLLHUP)) { - ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0, + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "epoll_wait() error on fd:%d ev:%04X", c->fd, event_list[i].events); } if (event_list[i].events & ~(EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP)) { - ngx_log_error(NGX_LOG_ALERT, log, 0, + ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, "strange epoll_wait() events fd:%d ev:%04X", c->fd, event_list[i].events); }