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);
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);
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;
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) {
}
}
}
- 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();