comparison src/event/modules/ngx_epoll_module.c @ 309:2e899477243a

nginx-0.0.3-2004-04-09-20:03:04 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 09 Apr 2004 16:03:04 +0000
parents 6b91bfbc4123
children 11ff50a35d6d
comparison
equal deleted inserted replaced
308:7a0dbd779c6d 309:2e899477243a
339 339
340 340
341 int ngx_epoll_process_events(ngx_cycle_t *cycle) 341 int ngx_epoll_process_events(ngx_cycle_t *cycle)
342 { 342 {
343 int events; 343 int events;
344 size_t n;
344 ngx_int_t instance, i; 345 ngx_int_t instance, i;
345 ngx_uint_t lock, expire; 346 ngx_uint_t lock, expire;
346 size_t n; 347 ngx_err_t err;
348 ngx_log_t *log;
347 ngx_msec_t timer; 349 ngx_msec_t timer;
348 ngx_err_t err;
349 struct timeval tv; 350 struct timeval tv;
350 ngx_connection_t *c; 351 ngx_connection_t *c;
351 ngx_epoch_msec_t delta; 352 ngx_epoch_msec_t delta;
352 353
353 timer = ngx_event_find_timer(); 354 timer = ngx_event_find_timer();
414 ngx_accept_mutex_unlock(); 415 ngx_accept_mutex_unlock();
415 return NGX_ERROR; 416 return NGX_ERROR;
416 } 417 }
417 418
418 lock = 1; 419 lock = 1;
420 log = cycle->log;
419 421
420 for (i = 0; i < events; i++) { 422 for (i = 0; i < events; i++) {
421 c = event_list[i].data.ptr; 423 c = event_list[i].data.ptr;
422 424
423 instance = (uintptr_t) c & 1; 425 instance = (uintptr_t) c & 1;
429 431
430 if (event_list[i].events & EPOLLOUT) { 432 if (event_list[i].events & EPOLLOUT) {
431 c->write->returned_instance = instance; 433 c->write->returned_instance = instance;
432 } 434 }
433 435
434 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 436 #if (NGX_DEBUG)
437 log = c->log ? c->log : cycle->log;
438 #endif
439
440 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, log, 0,
435 "epoll: fd:%d ev:%04X d:" PTR_FMT, 441 "epoll: fd:%d ev:%04X d:" PTR_FMT,
436 c->fd, event_list[i].events, event_list[i].data); 442 c->fd, event_list[i].events, event_list[i].data);
437 443
438 if (c->read->instance != instance) { 444 if (c->read->instance != instance) {
439 445
440 /* 446 /*
441 * the stale event from a file descriptor 447 * the stale event from a file descriptor
442 * that was just closed in this iteration 448 * that was just closed in this iteration
443 */ 449 */
444 450
445 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 451 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0,
446 "epoll: stale event " PTR_FMT, c); 452 "epoll: stale event " PTR_FMT, c);
447 continue; 453 continue;
448 } 454 }
449 455
450 if (event_list[i].events & (EPOLLERR|EPOLLHUP)) { 456 if (event_list[i].events & (EPOLLERR|EPOLLHUP)) {
451 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 457 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0,
452 "epoll_wait() error on fd:%d ev:%04X", 458 "epoll_wait() error on fd:%d ev:%04X",
453 c->fd, event_list[i].events); 459 c->fd, event_list[i].events);
454 } 460 }
455 461
456 if (event_list[i].events & ~(EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP)) { 462 if (event_list[i].events & ~(EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP)) {
457 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, 463 ngx_log_error(NGX_LOG_ALERT, log, 0,
458 "strange epoll_wait() events fd:%d ev:%04X", 464 "strange epoll_wait() events fd:%d ev:%04X",
459 c->fd, event_list[i].events); 465 c->fd, event_list[i].events);
460 } 466 }
461 467
462 if ((event_list[i].events & (EPOLLOUT|EPOLLERR|EPOLLHUP)) 468 if ((event_list[i].events & (EPOLLOUT|EPOLLERR|EPOLLHUP))