diff src/event/modules/ngx_rtsig_module.c @ 354:eaf1f651cf86

nginx-0.0.7-2004-06-15-11:55:11 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 15 Jun 2004 07:55:11 +0000
parents 694d7ddc3599
children 744ccb59062d
line wrap: on
line diff
--- a/src/event/modules/ngx_rtsig_module.c
+++ b/src/event/modules/ngx_rtsig_module.c
@@ -177,6 +177,10 @@ static ngx_int_t ngx_rtsig_add_connectio
     ngx_rtsig_conf_t  *rtscf;
 
     if (c->read->accept && c->read->disabled) {
+
+        ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                       "rtsig enable connection: fd:%d", c->fd);
+
         if (fcntl(c->fd, F_SETOWN, ngx_pid) == -1) {
             ngx_log_error(NGX_LOG_ALERT, c->log, ngx_errno,
                           "fcntl(F_SETOWN) failed");
@@ -233,14 +237,20 @@ static ngx_int_t ngx_rtsig_del_connectio
                    "rtsig del connection: fd:%d", c->fd);
 
     if ((flags & NGX_DISABLE_EVENT) && c->read->accept) {
+
+        ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0,
+                       "rtsig disable connection: fd:%d", c->fd);
+
         c->read->active = 0;
-        c->read->disabled = 0;
+        c->read->disabled = 1;
         return NGX_OK;
     }
 
     if (flags & NGX_CLOSE_EVENT) {
         c->read->active = 0;
         c->write->active = 0;
+        c->read->posted = 0;
+        c->write->posted = 0;
         return NGX_OK;
     }
 
@@ -252,6 +262,8 @@ static ngx_int_t ngx_rtsig_del_connectio
 
     c->read->active = 0;
     c->write->active = 0;
+    c->read->posted = 0;
+    c->write->posted = 0;
 
     return NGX_OK;
 }
@@ -299,6 +311,8 @@ ngx_int_t ngx_rtsig_process_events(ngx_c
                 ngx_accept_disabled--;
 
             } else {
+                ngx_accept_mutex_held = 0;
+
                 if (ngx_trylock_accept_mutex(cycle) == NGX_ERROR) {
                     return NGX_ERROR;
                 }
@@ -517,7 +531,8 @@ ngx_int_t ngx_rtsig_process_events(ngx_c
 
 static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
 {
-    int                name[2], len, rtsig_max, rtsig_nr, events, ready;
+    int                name[2], rtsig_max, rtsig_nr, events, ready;
+    size_t             len;
     ngx_int_t          tested, n, i;
     ngx_err_t          err;
     ngx_connection_t  *c;
@@ -709,8 +724,8 @@ static char *ngx_rtsig_init_conf(ngx_cyc
     ngx_conf_init_value(rtscf->signo, SIGRTMIN + 10);
 
     ngx_conf_init_value(rtscf->overflow_events, 16);
-    ngx_conf_init_value(rtscf->overflow_test, 100);
-    ngx_conf_init_value(rtscf->overflow_threshold, 4);
+    ngx_conf_init_value(rtscf->overflow_test, 32);
+    ngx_conf_init_value(rtscf->overflow_threshold, 10);
 
     return NGX_CONF_OK;
 }