]> granicus.if.org Git - apache/commitdiff
Follow on to 1057048:
authorJeff Trawick <trawick@apache.org>
Wed, 27 Apr 2011 10:31:06 +0000 (10:31 +0000)
committerJeff Trawick <trawick@apache.org>
Wed, 27 Apr 2011 10:31:06 +0000 (10:31 +0000)
In the map of active workers, don't print spaces for scoreboard
slots which aren't used due to ThreadsPerChild < ThreadLimit or
MaxClients/ThreadsPerChild < ServerLimit; simply omit those slots
from the display.  Workers in those slots which are gracefully
exiting (from a previous generation with a different MPM config)
will be displayed, and the map will shrink as those workers exit.

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

modules/generators/mod_status.c

index 7a816b2568af0eae9da0f2934e2b065d2d75513c..8e2c22e33a650d1c46ad439082d58ab851174fb2 100644 (file)
@@ -183,7 +183,7 @@ static int status_handler(request_rec *r)
     const char *loc;
     apr_time_t nowtime;
     apr_interval_time_t up_time;
-    int j, i, res;
+    int j, i, res, written;
     int ready;
     int busy;
     unsigned long count;
@@ -470,13 +470,17 @@ static int status_handler(request_rec *r)
     else
         ap_rputs("Scoreboard: ", r);
 
+    written = 0;
     for (i = 0; i < server_limit; ++i) {
         for (j = 0; j < thread_limit; ++j) {
             int indx = (i * thread_limit) + j;
-            ap_rputc(stat_buffer[indx], r);
-            if ((indx % STATUS_MAXLINE == (STATUS_MAXLINE - 1))
-                && !short_report)
-                ap_rputs("\n", r);
+            if (stat_buffer[indx] != status_flags[SERVER_DISABLED]) {
+                ap_rputc(stat_buffer[indx], r);
+                if ((written % STATUS_MAXLINE == (STATUS_MAXLINE - 1))
+                    && !short_report)
+                    ap_rputs("\n", r);
+                written++;
+            }
         }
     }
 
@@ -496,7 +500,6 @@ static int status_handler(request_rec *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,<br />\n", r);
-        ap_rputs("\"<b><code> </code></b>\" Slot disabled by MaxClients setting</p>\n", r);
         ap_rputs("<p />\n", r);
         if (!ap_extended_status) {
             int j;