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