记分板中的每一个插槽都记录了进程的相关信息,其中一个重要的属性就是当前进程的状态。当进程的状态发生变化的时候,记分板中的状态字段也应该随之变化。ap_update_child_status_from_indexes函数用以更新记分板中指定进程的状态。
AP_DECLARE(int) ap_update_child_status_from_indexes(int child_num,
int thread_num,
int status,
request_rec *r)
函数需要四个参数,child_num是需要更新状态的进程的索引;thread_num则是线程在该进程的线程组中的索引;status是设置的新的状态值;r则是与当前工作线程关联的请求结构。
ws = &ap_scoreboard_image->servers[child_num][thread_num];
old_status = ws->status;
ws->status = status;
ps = &ap_scoreboard_image->parent[child_num];
更新之前首先的任务就是获取索引为child_num的进程以及该进程内索引为thread_num的线程的描述数据结构。根据记分板的内存布局很容易理解上面的语句。不过对于线程,在对其进行更改之前必须保存其以前的状态。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




