diff options
author | Igor Sysoev <igor@sysoev.ru> | 2004-02-01 08:10:52 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2004-02-01 08:10:52 +0000 |
commit | 328af6e8cd26f274bf385cfff3c888725746ea4f (patch) | |
tree | 9d543325432262cde3c248dad0595265bb15feea /src/event/modules/ngx_devpoll_module.c | |
parent | bbcea6c3d79208d002710734d5f0826e7fc79465 (diff) | |
download | nginx-328af6e8cd26f274bf385cfff3c888725746ea4f.tar.gz nginx-328af6e8cd26f274bf385cfff3c888725746ea4f.zip |
nginx-0.0.1-2004-02-01-11:10:52 import
Diffstat (limited to 'src/event/modules/ngx_devpoll_module.c')
-rw-r--r-- | src/event/modules/ngx_devpoll_module.c | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/src/event/modules/ngx_devpoll_module.c b/src/event/modules/ngx_devpoll_module.c index 1aa042ab2..e8204cd63 100644 --- 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 *log) 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 *log) 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) { |