From: Paul J. Reder Date: Wed, 18 Jul 2001 20:29:00 +0000 (+0000) Subject: Changed AP_MPMQ_MAX_DAEMONS to refer to MaxClients and X-Git-Tag: 2.0.21~31 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=620a48e6099b08b7a806e0097223f06eab433ddb;p=apache Changed AP_MPMQ_MAX_DAEMONS to refer to MaxClients and added an AP_MPMQ_MAX_DAEMON_USED to refer to the highest daemon index actually used in the scoreboard. I also updated the pertinent calls. Paul J. Reder git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89604 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index f2fe09c35a..2e6397ceca 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,10 @@ Changes with Apache 2.0.21-dev + *) Changed AP_MPMQ_MAX_DAEMONS to refer to MaxClients and + added an AP_MPMQ_MAX_DAEMON_USED to refer to the highest + daemon index actually used in the scoreboard. I also + updated the pertinent calls. [Paul J. Reder] + *) Win32: Prevent listening sockets from being inherited by the Apache child process, CGI scripts, rotatelog process etc. If the Apache child process segfaults, any processes diff --git a/include/ap_mpm.h b/include/ap_mpm.h index a957f7b947..b1645b631d 100644 --- a/include/ap_mpm.h +++ b/include/ap_mpm.h @@ -158,17 +158,18 @@ AP_DECLARE(apr_status_t) ap_os_create_privileged_process( /* an MPM is using a dynamic # */ /* threads or daemons. */ -#define AP_MPMQ_MAX_DAEMONS 1 /* Max # of daemons */ +#define AP_MPMQ_MAX_DAEMON_USED 1 /* Max # of daemons used so far */ #define AP_MPMQ_IS_THREADED 2 /* MPM can do threading */ #define AP_MPMQ_IS_FORKED 3 /* MPM can do forking */ #define AP_MPMQ_HARD_LIMIT_DAEMONS 4 /* The compiled max # deamons */ #define AP_MPMQ_HARD_LIMIT_THREADS 5 /* The compiled max # threads */ -#define AP_MPMQ_MAX_THREADS 6 /* Max # of threads */ +#define AP_MPMQ_MAX_THREADS 6 /* # of threads/child by config */ #define AP_MPMQ_MIN_SPARE_DEAMONS 7 /* Min # of spare daemons */ #define AP_MPMQ_MIN_SPARE_THREADS 8 /* Min # of spare threads */ #define AP_MPMQ_MAX_SPARE_DAEMONS 9 /* Max # of spare daemons */ #define AP_MPMQ_MAX_SPARE_THREADS 10 /* Max # of spare threads */ #define AP_MPMQ_MAX_REQUESTS_DEAMON 11 /* Max # of requests per daemon */ +#define AP_MPMQ_MAX_DAEMONS 12 /* Max # of daemons by config */ /** diff --git a/modules/generators/mod_info.c b/modules/generators/mod_info.c index 4194f4b411..04ac10ad16 100644 --- a/modules/generators/mod_info.c +++ b/modules/generators/mod_info.c @@ -415,7 +415,7 @@ static int display_info(request_rec *r) "connection: %d    " "keep-alive: %d
", serv->timeout, serv->keep_alive_timeout); - ap_mpm_query(AP_MPMQ_MAX_DAEMONS, &max_daemons); + ap_mpm_query(AP_MPMQ_MAX_DAEMON_USED, &max_daemons); ap_mpm_query(AP_MPMQ_IS_THREADED, &threaded); ap_mpm_query(AP_MPMQ_IS_FORKED, &forked); ap_rprintf(r, "MPM used is %s
\n", ap_show_mpm()); diff --git a/server/mpm/beos/beos.c b/server/mpm/beos/beos.c index 733473cf58..e1df4bc1f2 100644 --- a/server/mpm/beos/beos.c +++ b/server/mpm/beos/beos.c @@ -653,7 +653,7 @@ static void server_main_loop(int remaining_threads_to_start) AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) { switch(query_code){ - case AP_MPMQ_MAX_DAEMONS: + case AP_MPMQ_MAX_DAEMON_USED: *result = ap_max_child_assigned; return APR_SUCCESS; case AP_MPMQ_IS_THREADED: @@ -686,6 +686,9 @@ AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) case AP_MPMQ_MAX_REQUESTS_DEAMON: *result = ap_max_requests_per_child; return APR_SUCCESS; + case AP_MPMQ_MAX_DAEMONS: + *result = ap_thread_limit; + return APR_SUCCESS; } return APR_ENOTIMPL; } diff --git a/server/mpm/experimental/perchild/perchild.c b/server/mpm/experimental/perchild/perchild.c index c33cf6e6a9..188bace271 100644 --- a/server/mpm/experimental/perchild/perchild.c +++ b/server/mpm/experimental/perchild/perchild.c @@ -222,7 +222,7 @@ static apr_lock_t *thread_accept_mutex; AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) { switch(query_code){ - case AP_MPMQ_MAX_DAEMONS: + case AP_MPMQ_MAX_DAEMON_USED: *result = ap_max_daemons_limit; return APR_SUCCESS; case AP_MPMQ_IS_THREADED: @@ -255,6 +255,9 @@ AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) case AP_MPMQ_MAX_REQUESTS_DEAMON: *result = max_requests_per_child; return APR_SUCCESS; + case AP_MPMQ_MAX_DAEMONS: + *result = num_daemons; + return APR_SUCCESS; } return APR_ENOTIMPL; } diff --git a/server/mpm/perchild/perchild.c b/server/mpm/perchild/perchild.c index c33cf6e6a9..188bace271 100644 --- a/server/mpm/perchild/perchild.c +++ b/server/mpm/perchild/perchild.c @@ -222,7 +222,7 @@ static apr_lock_t *thread_accept_mutex; AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) { switch(query_code){ - case AP_MPMQ_MAX_DAEMONS: + case AP_MPMQ_MAX_DAEMON_USED: *result = ap_max_daemons_limit; return APR_SUCCESS; case AP_MPMQ_IS_THREADED: @@ -255,6 +255,9 @@ AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) case AP_MPMQ_MAX_REQUESTS_DEAMON: *result = max_requests_per_child; return APR_SUCCESS; + case AP_MPMQ_MAX_DAEMONS: + *result = num_daemons; + return APR_SUCCESS; } return APR_ENOTIMPL; } diff --git a/server/mpm/prefork/prefork.c b/server/mpm/prefork/prefork.c index 3a9102d3df..d006ab8e10 100644 --- a/server/mpm/prefork/prefork.c +++ b/server/mpm/prefork/prefork.c @@ -315,7 +315,7 @@ static void accept_mutex_off(void) AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) { switch(query_code){ - case AP_MPMQ_MAX_DAEMONS: + case AP_MPMQ_MAX_DAEMON_USED: *result = ap_daemons_limit; return APR_SUCCESS; case AP_MPMQ_IS_THREADED: @@ -348,6 +348,9 @@ AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) case AP_MPMQ_MAX_REQUESTS_DEAMON: *result = ap_max_requests_per_child; return APR_SUCCESS; + case AP_MPMQ_MAX_DAEMONS: + *result = ap_daemons_limit; + return APR_SUCCESS; } return APR_ENOTIMPL; } diff --git a/server/mpm/spmt_os2/spmt_os2.c b/server/mpm/spmt_os2/spmt_os2.c index ce43d2a80e..365f86abef 100644 --- a/server/mpm/spmt_os2/spmt_os2.c +++ b/server/mpm/spmt_os2/spmt_os2.c @@ -878,7 +878,7 @@ static void perform_idle_server_maintenance(void) AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) { switch(query_code){ - case AP_MPMQ_MAX_DAEMONS: + case AP_MPMQ_MAX_DAEMON_USED: *result = max_daemons_limit; return APR_SUCCESS; case AP_MPMQ_IS_THREADED: @@ -911,6 +911,9 @@ AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) case AP_MPMQ_MAX_REQUESTS_DEAMON: *result = ap_max_requests_per_child; return APR_SUCCESS; + case AP_MPMQ_MAX_DAEMONS: + *result = ap_daemons_limit; + return APR_SUCCESS; } return APR_ENOTIMPL; } diff --git a/server/mpm/threaded/threaded.c b/server/mpm/threaded/threaded.c index f601c0d6cd..0f9a7b3fcb 100644 --- a/server/mpm/threaded/threaded.c +++ b/server/mpm/threaded/threaded.c @@ -192,7 +192,7 @@ static const char *lock_fname; AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) { switch(query_code){ - case AP_MPMQ_MAX_DAEMONS: + case AP_MPMQ_MAX_DAEMON_USED: *result = ap_max_daemons_limit; return APR_SUCCESS; case AP_MPMQ_IS_THREADED: @@ -225,6 +225,9 @@ AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) case AP_MPMQ_MAX_REQUESTS_DEAMON: *result = ap_max_requests_per_child; return APR_SUCCESS; + case AP_MPMQ_MAX_DAEMONS: + *result = ap_daemons_limit; + return APR_SUCCESS; } return APR_ENOTIMPL; } diff --git a/server/mpm/winnt/mpm_winnt.c b/server/mpm/winnt/mpm_winnt.c index 901b5ba206..af024575d6 100644 --- a/server/mpm/winnt/mpm_winnt.c +++ b/server/mpm/winnt/mpm_winnt.c @@ -1563,7 +1563,7 @@ apr_array_header_t *mpm_new_argv; AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) { switch(query_code){ - case AP_MPMQ_MAX_DAEMONS: + case AP_MPMQ_MAX_DAEMON_USED: *result = MAXIMUM_WAIT_OBJECTS; return APR_SUCCESS; case AP_MPMQ_IS_THREADED: @@ -1596,6 +1596,9 @@ AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result) case AP_MPMQ_MAX_REQUESTS_DEAMON: *result = ap_max_requests_per_child; return APR_SUCCESS; + case AP_MPMQ_MAX_DAEMONS: + *result = 0; + return APR_SUCCESS; } return APR_ENOTIMPL; } diff --git a/server/mpm_common.c b/server/mpm_common.c index 006d813341..c79eeb52a1 100644 --- a/server/mpm_common.c +++ b/server/mpm_common.c @@ -97,7 +97,7 @@ void ap_reclaim_child_processes(int terminate) int not_dead_yet; int max_daemons; - ap_mpm_query(AP_MPMQ_MAX_DAEMONS, &max_daemons); + ap_mpm_query(AP_MPMQ_MAX_DAEMON_USED, &max_daemons); MPM_SYNC_CHILD_TABLE(); for (tries = terminate ? 4 : 1; tries <= 9; ++tries) { diff --git a/server/scoreboard.c b/server/scoreboard.c index 1d4216fec7..32d5fcf0db 100644 --- a/server/scoreboard.c +++ b/server/scoreboard.c @@ -255,7 +255,7 @@ AP_DECLARE(int) find_child_by_pid(apr_proc_t *pid) int i; int max_daemons_limit; - ap_mpm_query(AP_MPMQ_MAX_DAEMONS, &max_daemons_limit); + ap_mpm_query(AP_MPMQ_MAX_DAEMON_USED, &max_daemons_limit); for (i = 0; i < max_daemons_limit; ++i) if (ap_scoreboard_image->parent[i].pid == pid->pid)