comparison src/core/ngx_connection.c @ 1833:86464f8eddd6

workaround for Linux 2.6 OpenVZ
author Igor Sysoev <igor@sysoev.ru>
date Tue, 08 Jan 2008 11:31:50 +0000
parents 0d37ad506bb6
children 192443881e51
comparison
equal deleted inserted replaced
1832:2547ef00c722 1833:86464f8eddd6
535 ls = cycle->listening.elts; 535 ls = cycle->listening.elts;
536 for (i = 0; i < cycle->listening.nelts; i++) { 536 for (i = 0; i < cycle->listening.nelts; i++) {
537 537
538 c = ls[i].connection; 538 c = ls[i].connection;
539 539
540 if (ngx_event_flags & NGX_USE_RTSIG_EVENT) { 540 if (c->read->active) {
541 if (c->read->active) { 541 if (ngx_event_flags & NGX_USE_RTSIG_EVENT) {
542 ngx_del_conn(c, NGX_CLOSE_EVENT); 542 ngx_del_conn(c, NGX_CLOSE_EVENT);
543 } 543
544 544 } else if (ngx_event_flags & NGX_USE_EPOLL_EVENT) {
545 } else { 545
546 if (c->read->active) { 546 /*
547 * it seems that Linux-2.6.x OpenVZ sends events
548 * for closed shared listening sockets unless
549 * the events was explicity deleted
550 */
551
552 ngx_del_event(c->read, NGX_READ_EVENT, 0);
553
554 } else {
547 ngx_del_event(c->read, NGX_READ_EVENT, NGX_CLOSE_EVENT); 555 ngx_del_event(c->read, NGX_READ_EVENT, NGX_CLOSE_EVENT);
548 } 556 }
549 } 557 }
550 558
551 ngx_free_connection(c); 559 ngx_free_connection(c);