在初始化之前,分配记分板所用内容。从上面的代码中,我们看到,分配的内存除了sizeof(scoreboard)大小是我们意料之内的,剩余的两部分server_limit*sizeof(worker_score)和server_limit*lb_limit*sizeof(lb_score*)则有点出乎意料之外。这两部分内存的用处我们稍后介绍。
more_storage = shared_score;
ap_scoreboard_image->global = (global_score *)more_storage;
more_storage = sizeof(global_score);
ap_scoreboard_image->parent = (process_score *)more_storage;
more_storage = sizeof(process_score) * server_limit;
ap_scoreboard_image->servers =
(worker_score **)((char*)ap_scoreboard_image sizeof(scoreboard));
for (i = 0; i < server_limit; i ) {
ap_scoreboard_image->servers[i] = (worker_score *)more_storage;
more_storage = thread_limit * sizeof(worker_score);
}
if (lb_limit) {
ap_scoreboard_image->balancers = (lb_score *)more_storage;
more_storage = lb_limit * sizeof(lb_score);
}
对于传入的共享内存按照下面的顺序进行布局初始化:首先保存全局共享信息global_score,占用内存sizeof(global_score);然后保存server_limit
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




