]> granicus.if.org Git - apache/commitdiff
scratch an old itch - give lingering close its own state in the scoreboard.
authorGreg Ames <gregames@apache.org>
Thu, 12 Jul 2001 03:20:50 +0000 (03:20 +0000)
committerGreg Ames <gregames@apache.org>
Thu, 12 Jul 2001 03:20:50 +0000 (03:20 +0000)
clean up SERVER_ACCEPTING and SERVER_QUEUEING (never set) while I'm at it.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89542 13f79535-47bb-0310-9956-ffa450edef68

include/scoreboard.h
modules/generators/mod_status.c
server/connection.c
server/scoreboard.c

index f36ec5ee8c77cadfa2e6cae31e8f4e6f4b0d24a8..d8acd84c6bf1ed0e52dcf11beff540eaaa5582a6 100644 (file)
@@ -91,11 +91,10 @@ extern "C" {
 #define SERVER_BUSY_KEEPALIVE 5        /* Waiting for more requests via keepalive */
 #define SERVER_BUSY_LOG 6      /* Logging the request */
 #define SERVER_BUSY_DNS 7      /* Looking up a hostname */
-#define SERVER_GRACEFUL 8      /* server is gracefully finishing request */
-#define SERVER_ACCEPTING 9     /* thread is accepting connections */
-#define SERVER_QUEUEING        10      /* thread is putting connection on the queue */
-#define SERVER_IDLE_KILL 11     /* Server is cleaning up idle children. */
-#define SERVER_NUM_STATUS 12   /* number of status settings */
+#define SERVER_CLOSING 8       /* Closing the connection */
+#define SERVER_GRACEFUL 9      /* server is gracefully finishing request */
+#define SERVER_IDLE_KILL 10     /* Server is cleaning up idle children. */
+#define SERVER_NUM_STATUS 11   /* number of status settings */
 
 /* Type used for generation indicies.  Startup and every restart cause a
  * new generation of children to be spawned.  Children within the same
index 42843fc6998e7231431281506440f9a0d722b4a8..eafceb0bcfc5bbac9093aa984359ae36f6e5969d 100644 (file)
@@ -464,8 +464,9 @@ static int status_handler(request_rec *r)
        ap_rputs("\"<B><code>W</code></B>\" Sending Reply, \n", r);
        ap_rputs("\"<B><code>K</code></B>\" Keepalive (read), \n", r);
        ap_rputs("\"<B><code>D</code></B>\" DNS Lookup,<BR>\n", r);
+       ap_rputs("\"<B><code>C</code></B>\" Closing connection, \n", r);
        ap_rputs("\"<B><code>L</code></B>\" Logging, \n", r);
-       ap_rputs("\"<B><code>G</code></B>\" Gracefully finishing, \n", r);
+       ap_rputs("\"<B><code>G</code></B>\" Gracefully finishing,<BR> \n", r);
         ap_rputs("\"<B><code>I</code></B>\" Idle cleanup of worker, \n", r);
        ap_rputs("\"<B><code>.</code></B>\" Open slot with no current process<P>\n", r);
        ap_rputs("<P>\n", r);
@@ -585,6 +586,9 @@ static int status_handler(request_rec *r)
                        case SERVER_BUSY_DNS:
                            ap_rputs("<b>DNS lookup</b>", r);
                            break;
+                       case SERVER_CLOSING:
+                           ap_rputs("<b>Closing</b>", r);
+                           break;
                        case SERVER_DEAD:
                            ap_rputs("Dead", r);
                            break;
@@ -659,6 +663,9 @@ static int status_handler(request_rec *r)
                        case SERVER_BUSY_DNS:
                            ap_rputs("<td><b>D</b>", r);
                            break;
+                       case SERVER_CLOSING:
+                           ap_rputs("<td><b>C</b>", r);
+                           break;
                        case SERVER_DEAD:
                            ap_rputs("<td>.", r);
                            break;
@@ -764,6 +771,7 @@ static void status_init(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, serv
     status_flags[SERVER_BUSY_KEEPALIVE] = 'K';
     status_flags[SERVER_BUSY_LOG] = 'L';
     status_flags[SERVER_BUSY_DNS] = 'D';
+    status_flags[SERVER_CLOSING] = 'C';
     status_flags[SERVER_GRACEFUL] = 'G';
     status_flags[SERVER_IDLE_KILL] = 'I';
 }
index 3f706a5e2417317bab8cba80b847dcd8168162dd..70f9fc29ba7e943f6c456754236442ccb339bf1d 100644 (file)
@@ -157,6 +157,8 @@ void ap_lingering_close(conn_rec *c)
     apr_int32_t timeout;
     apr_int32_t total_linger_time = 0;
 
+    ap_update_child_status(AP_CHILD_THREAD_FROM_ID(c->id), SERVER_CLOSING, NULL);
+
 #ifdef NO_LINGCLOSE
     ap_flush_conn(c);  /* just close it */
     apr_socket_close(c->client_socket);
index a6237f923584784e15300db4633e3faf389708af..d9398a4a4f3d3d0672c2e1e4887dc0c9d0b25654 100644 (file)
@@ -279,7 +279,7 @@ int ap_update_child_status(int child_num, int thread_num, int status, request_re
 
     ps = &ap_scoreboard_image->parent[child_num];
     
-    if ((status == SERVER_READY  || status == SERVER_ACCEPTING)
+    if (status == SERVER_READY
        && old_status == SERVER_STARTING) {
         ws->thread_num = child_num * HARD_SERVER_LIMIT + thread_num;
         ps->generation = ap_my_generation;