Mercurial > hg > nginx-quic
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)) |