From: Jeff Trawick
Date: Wed, 27 Apr 2011 10:31:06 +0000 (+0000)
Subject: Follow on to 1057048:
X-Git-Tag: 2.3.12~28
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6d7fe15c43df4eb629317e7fb672ba4014f632de;p=apache
Follow on to 1057048:
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
---
diff --git a/modules/generators/mod_status.c b/modules/generators/mod_status.c
index 7a816b2568..8e2c22e33a 100644
--- a/modules/generators/mod_status.c
+++ b/modules/generators/mod_status.c
@@ -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("\"G
\" Gracefully finishing,
\n", r);
ap_rputs("\"I
\" Idle cleanup of worker, \n", r);
ap_rputs("\".
\" Open slot with no current process,
\n", r);
- ap_rputs("\"
\" Slot disabled by MaxClients setting
\n", r);
ap_rputs("\n", r);
if (!ap_extended_status) {
int j;