Mercurial > hg > nginx
comparison 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 |
comparison
equal
deleted
inserted
replaced
246:6753e8cdaa2c | 247:008276b9e061 |
---|---|
361 ngx_log_error((err == NGX_EINTR) ? NGX_LOG_INFO : NGX_LOG_ALERT, | 361 ngx_log_error((err == NGX_EINTR) ? NGX_LOG_INFO : NGX_LOG_ALERT, |
362 log, err, "ioctl(DP_POLL) failed"); | 362 log, err, "ioctl(DP_POLL) failed"); |
363 return NGX_ERROR; | 363 return NGX_ERROR; |
364 } | 364 } |
365 | 365 |
366 if ((int) timer != INFTIM) { | 366 if (timer != (ngx_msec_t) INFTIM) { |
367 delta = ngx_elapsed_msec - delta; | 367 delta = ngx_elapsed_msec - delta; |
368 | 368 |
369 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0, | 369 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0, |
370 "devpoll timer: %d, delta: %d", timer, (int) delta); | 370 "devpoll timer: %d, delta: %d", timer, (int) delta); |
371 } else { | 371 } else { |
400 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, log, 0, | 400 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, log, 0, |
401 "devpoll: fd:%d, ev:%04X, rev:%04X", | 401 "devpoll: fd:%d, ev:%04X, rev:%04X", |
402 event_list[i].fd, | 402 event_list[i].fd, |
403 event_list[i].events, event_list[i].revents); | 403 event_list[i].events, event_list[i].revents); |
404 | 404 |
405 if (event_list[i].revents & POLLIN) { | 405 if (event_list[i].revents & (POLLERR|POLLHUP|POLLNVAL)) { |
406 if (!c->read->active) { | 406 ngx_log_error(NGX_LOG_ALERT, log, 0, |
407 continue; | 407 "ioctl(DP_POLL) error fd:%d ev:%04X rev:%04X", |
408 } | 408 event_list[i].fd, |
409 | 409 event_list[i].events, event_list[i].revents); |
410 } | |
411 | |
412 if (event_list[i].revents & ~(POLLIN|POLLOUT|POLLERR|POLLHUP|POLLNVAL)) | |
413 { | |
414 ngx_log_error(NGX_LOG_ALERT, log, 0, | |
415 "strange ioctl(DP_POLL) events " | |
416 "fd:%d ev:%04X rev:%04X", | |
417 event_list[i].fd, | |
418 event_list[i].events, event_list[i].revents); | |
419 } | |
420 | |
421 if ((event_list[i].events & (POLLIN|POLLERR|POLLHUP)) | |
422 && c->read->active) | |
423 { | |
410 c->read->ready = 1; | 424 c->read->ready = 1; |
411 c->read->event_handler(c->read); | 425 c->read->event_handler(c->read); |
412 } | 426 } |
413 | 427 |
414 if (event_list[i].revents & POLLOUT) { | 428 if ((event_list[i].events & (POLLOUT|POLLERR|POLLHUP)) |
415 if (!c->write->active) { | 429 && c->write->active) |
416 continue; | 430 { |
417 } | |
418 | |
419 c->write->ready = 1; | 431 c->write->ready = 1; |
420 c->write->event_handler(c->write); | 432 c->write->event_handler(c->write); |
421 } | 433 } |
422 | |
423 if (event_list[i].revents & (POLLERR|POLLHUP|POLLNVAL)) { | |
424 err = 0; | |
425 if (event_list[i].revents & POLLNVAL) { | |
426 err = EBADF; | |
427 } | |
428 | |
429 ngx_log_error(NGX_LOG_ERR, log, err, | |
430 "ioctl(DP_POLL) error on %d:%d", | |
431 event_list[i].fd, event_list[i].revents); | |
432 } | |
433 } | 434 } |
434 | 435 |
435 if (timer != (ngx_msec_t) INFTIM && delta) { | 436 if (timer != (ngx_msec_t) INFTIM && delta) { |
436 ngx_event_expire_timers((ngx_msec_t) delta); | 437 ngx_event_expire_timers((ngx_msec_t) delta); |
437 } | 438 } |