]> git.kaiwu.me - nginx.git/commitdiff
nginx-0.0.4-2004-06-10-00:03:54 import
authorIgor Sysoev <igor@sysoev.ru>
Wed, 9 Jun 2004 20:03:54 +0000 (20:03 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Wed, 9 Jun 2004 20:03:54 +0000 (20:03 +0000)
src/event/modules/ngx_rtsig_module.c
src/event/ngx_event_accept.c
src/event/ngx_event_posted.c

index c1428ee81c5ee053c9fa0607165a3cecbfc37a6c..98a9155eb2b2631a70e2c6f98f267e2155b9c915 100644 (file)
@@ -476,11 +476,12 @@ ngx_int_t ngx_rtsig_process_events(ngx_cycle_t *cycle)
 static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
 {
     int                name[2], len, rtsig_max, rtsig_nr;
-    ngx_uint_t         i;
+    ngx_uint_t         i, n;
     ngx_connection_t  *c;
 
     /* TODO: old cylces */
 
+    n = 0;
     c = cycle->connections;
     for (current = 0; current < cycle->connection_n; current++) {
 
@@ -491,6 +492,7 @@ static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
         }
 
         if (c[i].read->active && c[i].read->event_handler) {
+            n++;
             c[i].read->ready = 1;
 
             if (!ngx_threaded) {
@@ -508,6 +510,7 @@ static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
         }
 
         if (c[i].write->active && c[i].write->event_handler) {
+            n++;
             c[i].write->ready = 1;
     
             if (!ngx_threaded) {
@@ -524,13 +527,13 @@ static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
             }
         }
 
-        if (i && (i % 100 == 0)) {
+        if (n && (n % 100 == 0)) {
 
             /*
              * Check the current rt queue length to prevent the new overflow.
              *
              * Learn the /proc/sys/kernel/rtsig-max value because
-             * it can be changed sisnce the last checking
+             * it can be changed sisnce the last checking.
              */
 
             name[0] = CTL_KERN;
@@ -553,10 +556,12 @@ static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
 
             /*
              * drain rt signal queue if the /proc/sys/kernel/rtsig-nr
-             * is bigger then "/proc/sys/kernel/rtsig-max / 4"
+             * is bigger than "/proc/sys/kernel/rtsig-max / 4"
              */
 
             if (rtsig_max / 4 < rtsig_nr) {
+                ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
+                               "rtsig queue state: %d/%d", rtsig_nr, rtsig_max);
                 while (ngx_rtsig_process_events(cycle) == NGX_OK) { /* void */ }
             }
         }
index 9b53edbb525ab462c3e5bddd1a4cfe7f2f9c8ab5..bdc9f4650a93cfe537a800a8ced07ffdf6f722af 100644 (file)
@@ -256,6 +256,10 @@ void ngx_event_accept(ngx_event_t *ev)
             rev->ready = 1;
         }
 
+        if (rev->ready) {
+            rev->returned_instance = rev->instance;
+        }
+
         c->ctx = ls->ctx;
         c->servers = ls->servers;
 
index 73a73775631e16a60422a551ee46d0f3f30b3b4a..96475f366eadbb1f73295c6a21c96fd9d23e0ba6 100644 (file)
@@ -40,7 +40,7 @@ void ngx_event_process_posted(ngx_cycle_t *cycle)
              */
 
             ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
-                          "stale posted event " PTR_FMT, ev);
+                           "stale posted event " PTR_FMT, ev);
             continue;
         }