global_score *global;
process_score *parent;
worker_score **servers;
- lb_score **balancers;
+ lb_score *balancers;
} scoreboard;
typedef struct ap_sb_handle_t ap_sb_handle_t;
AP_DECLARE(worker_score *) ap_get_scoreboard_worker(int x, int y);
AP_DECLARE(process_score *) ap_get_scoreboard_process(int x);
AP_DECLARE(global_score *) ap_get_scoreboard_global(void);
-AP_DECLARE(lb_score *) ap_get_scoreboard_lb(int child_num, int lb_num);
+AP_DECLARE(lb_score *) ap_get_scoreboard_lb(int lb_num);
AP_DECLARE_DATA extern scoreboard *ap_scoreboard_image;
AP_DECLARE_DATA extern const char *ap_scoreboard_fname;
scoreboard_size += sizeof(process_score) * server_limit;
scoreboard_size += sizeof(worker_score) * server_limit * thread_limit;
if (lb_limit)
- scoreboard_size += sizeof(lb_score) * server_limit * lb_limit;
+ scoreboard_size += sizeof(lb_score) * lb_limit;
return scoreboard_size;
}
more_storage += thread_limit * sizeof(worker_score);
}
if (lb_limit) {
- ap_scoreboard_image->balancers =
- (lb_score **)((char*)ap_scoreboard_image + sizeof(scoreboard) +
- server_limit * sizeof(worker_score *));
- for (i = 0; i < server_limit; i++) {
- ap_scoreboard_image->balancers[i] = (lb_score *)more_storage;
- more_storage += lb_limit * sizeof(lb_score);
- }
+ ap_scoreboard_image->balancers = (lb_score *)more_storage;
+ more_storage += lb_limit * sizeof(lb_score);
}
ap_assert(more_storage == (char*)shared_score + scoreboard_size);
ap_scoreboard_image->global->server_limit = server_limit;
}
/* Clean up the lb workers data */
if (lb_limit) {
- for (i = 0; i < server_limit; i++) {
- memset(ap_scoreboard_image->balancers[i], 0,
- sizeof(lb_score) * lb_limit);
- }
+ memset(ap_scoreboard_image->balancers, 0,
+ sizeof(lb_score) * lb_limit);
}
return OK;
}
return ap_scoreboard_image->global;
}
-AP_DECLARE(lb_score *) ap_get_scoreboard_lb(int child_num, int lb_num)
+AP_DECLARE(lb_score *) ap_get_scoreboard_lb(int lb_num)
{
- if (((child_num < 0) || (server_limit < child_num)) ||
- ((lb_num < 0) || (lb_limit < lb_num))) {
+ if (((lb_num < 0) || (lb_limit < lb_num))) {
return(NULL); /* Out of range */
}
- return &ap_scoreboard_image->balancers[child_num][lb_num];
+ return &ap_scoreboard_image->balancers[lb_num];
}