comparison src/core/ngx_connection.c @ 2725:d43d73277c5c

Win32 master/workers model
author Igor Sysoev <igor@sysoev.ru>
date Mon, 20 Apr 2009 06:08:47 +0000
parents c352c419be85
children baad3036086e
comparison
equal deleted inserted replaced
2724:9fd2f12fee0a 2725:d43d73277c5c
555 ls = cycle->listening.elts; 555 ls = cycle->listening.elts;
556 for (i = 0; i < cycle->listening.nelts; i++) { 556 for (i = 0; i < cycle->listening.nelts; i++) {
557 557
558 c = ls[i].connection; 558 c = ls[i].connection;
559 559
560 if (c->read->active) { 560 if (c) {
561 if (ngx_event_flags & NGX_USE_RTSIG_EVENT) { 561 if (c->read->active) {
562 ngx_del_conn(c, NGX_CLOSE_EVENT); 562 if (ngx_event_flags & NGX_USE_RTSIG_EVENT) {
563 563 ngx_del_conn(c, NGX_CLOSE_EVENT);
564 } else if (ngx_event_flags & NGX_USE_EPOLL_EVENT) { 564
565 565 } else if (ngx_event_flags & NGX_USE_EPOLL_EVENT) {
566 /* 566
567 * it seems that Linux-2.6.x OpenVZ sends events 567 /*
568 * for closed shared listening sockets unless 568 * it seems that Linux-2.6.x OpenVZ sends events
569 * the events was explicity deleted 569 * for closed shared listening sockets unless
570 */ 570 * the events was explicity deleted
571 571 */
572 ngx_del_event(c->read, NGX_READ_EVENT, 0); 572
573 573 ngx_del_event(c->read, NGX_READ_EVENT, 0);
574 } else { 574
575 ngx_del_event(c->read, NGX_READ_EVENT, NGX_CLOSE_EVENT); 575 } else {
576 } 576 ngx_del_event(c->read, NGX_READ_EVENT, NGX_CLOSE_EVENT);
577 } 577 }
578 578 }
579 ngx_free_connection(c); 579
580 580 ngx_free_connection(c);
581 c->fd = (ngx_socket_t) -1; 581
582 c->fd = (ngx_socket_t) -1;
583 }
582 584
583 ngx_log_debug2(NGX_LOG_DEBUG_CORE, cycle->log, 0, 585 ngx_log_debug2(NGX_LOG_DEBUG_CORE, cycle->log, 0,
584 "close listening %V #%d ", &ls[i].addr_text, ls[i].fd); 586 "close listening %V #%d ", &ls[i].addr_text, ls[i].fd);
585 587
586 if (ngx_close_socket(ls[i].fd) == -1) { 588 if (ngx_close_socket(ls[i].fd) == -1) {