From: Brian Havard Date: Sun, 30 Dec 2001 13:27:48 +0000 (+0000) Subject: Make calc_scoreboard_size() and init_scoreboard() usable from MPMs. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=407db0e5a443214ffa51b0cbccd16833123dfe9a;p=apache Make calc_scoreboard_size() and init_scoreboard() usable from MPMs. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92661 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/include/scoreboard.h b/include/scoreboard.h index ba6ba5e3ad..c4c6637af3 100644 --- a/include/scoreboard.h +++ b/include/scoreboard.h @@ -199,6 +199,8 @@ AP_DECLARE(int) ap_exists_scoreboard_image(void); AP_DECLARE_NONSTD(void) ap_create_scoreboard(apr_pool_t *p, ap_scoreboard_e t); AP_DECLARE(void) ap_increment_counts(void *sbh, request_rec *r); +int ap_calc_scoreboard_size(void); +void ap_init_scoreboard(void); apr_status_t ap_cleanup_scoreboard(void *d); AP_DECLARE(void) reopen_scoreboard(apr_pool_t *p); diff --git a/server/scoreboard.c b/server/scoreboard.c index 73b8880949..ce443d5da3 100644 --- a/server/scoreboard.c +++ b/server/scoreboard.c @@ -123,7 +123,7 @@ static apr_status_t ap_cleanup_shared_mem(void *d) return APR_SUCCESS; } -static void calc_scoreboard_size(void) +int ap_calc_scoreboard_size(void) { ap_mpm_query(AP_MPMQ_HARD_LIMIT_THREADS, &thread_limit); ap_mpm_query(AP_MPMQ_HARD_LIMIT_DAEMONS, &server_limit); @@ -131,9 +131,10 @@ static void calc_scoreboard_size(void) scoreboard_size += sizeof(process_score) * server_limit; scoreboard_size += sizeof(worker_score * ) * server_limit; scoreboard_size += sizeof(worker_score) * server_limit * thread_limit; + return scoreboard_size; } -static void init_scoreboard(void) +void ap_init_scoreboard(void) { char *more_storage; int i; @@ -216,7 +217,7 @@ AP_DECLARE_NONSTD(void) ap_create_scoreboard(apr_pool_t *p, ap_scoreboard_e sb_t if (ap_scoreboard_image) running_gen = ap_scoreboard_image->global.running_generation; if (ap_scoreboard_image == NULL) { - calc_scoreboard_size(); + ap_calc_scoreboard_size(); if (sb_type == SB_SHARED) { rv = setup_shared(p); if (rv) { @@ -234,7 +235,7 @@ AP_DECLARE_NONSTD(void) ap_create_scoreboard(apr_pool_t *p, ap_scoreboard_e sb_t } } } - init_scoreboard(); /* can't just memset() */ + ap_init_scoreboard(); /* can't just memset() */ ap_scoreboard_image->global.sb_type = sb_type; ap_scoreboard_image->global.running_generation = running_gen; ap_restart_time = apr_time_now();