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 }