Mercurial > hg > nginx
diff src/event/modules/ngx_devpoll_module.c @ 247:008276b9e061
nginx-0.0.1-2004-02-01-11:10:52 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 01 Feb 2004 08:10:52 +0000 |
parents | 6753e8cdaa2c |
children | 4b1a3a4acc60 |
line wrap: on
line diff
--- a/src/event/modules/ngx_devpoll_module.c +++ b/src/event/modules/ngx_devpoll_module.c @@ -363,7 +363,7 @@ int ngx_devpoll_process_events(ngx_log_t return NGX_ERROR; } - if ((int) timer != INFTIM) { + if (timer != (ngx_msec_t) INFTIM) { delta = ngx_elapsed_msec - delta; ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0, @@ -402,34 +402,35 @@ int ngx_devpoll_process_events(ngx_log_t event_list[i].fd, event_list[i].events, event_list[i].revents); - if (event_list[i].revents & POLLIN) { - if (!c->read->active) { - continue; - } + if (event_list[i].revents & (POLLERR|POLLHUP|POLLNVAL)) { + ngx_log_error(NGX_LOG_ALERT, log, 0, + "ioctl(DP_POLL) error fd:%d ev:%04X rev:%04X", + event_list[i].fd, + event_list[i].events, event_list[i].revents); + } + if (event_list[i].revents & ~(POLLIN|POLLOUT|POLLERR|POLLHUP|POLLNVAL)) + { + ngx_log_error(NGX_LOG_ALERT, log, 0, + "strange ioctl(DP_POLL) events " + "fd:%d ev:%04X rev:%04X", + event_list[i].fd, + event_list[i].events, event_list[i].revents); + } + + if ((event_list[i].events & (POLLIN|POLLERR|POLLHUP)) + && c->read->active) + { c->read->ready = 1; c->read->event_handler(c->read); } - if (event_list[i].revents & POLLOUT) { - if (!c->write->active) { - continue; - } - + if ((event_list[i].events & (POLLOUT|POLLERR|POLLHUP)) + && c->write->active) + { c->write->ready = 1; c->write->event_handler(c->write); } - - if (event_list[i].revents & (POLLERR|POLLHUP|POLLNVAL)) { - err = 0; - if (event_list[i].revents & POLLNVAL) { - err = EBADF; - } - - ngx_log_error(NGX_LOG_ERR, log, err, - "ioctl(DP_POLL) error on %d:%d", - event_list[i].fd, event_list[i].revents); - } } if (timer != (ngx_msec_t) INFTIM && delta) {