| 410 | } |
| 411 | |
| 412 | static void worker_note_child_lost_slot(int slot, pid_t newpid) |
| 413 | { |
| 414 | ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ap_server_conf, APLOGNO(00263) |
| 415 | "pid %" APR_PID_T_FMT " taking over scoreboard slot from " |
| 416 | "%" APR_PID_T_FMT "%s", |
| 417 | newpid, |
| 418 | ap_scoreboard_image->parent[slot].pid, |
| 419 | ap_scoreboard_image->parent[slot].quiescing ? |
| 420 | " (quiescing)" : ""); |
| 421 | ap_run_child_status(ap_server_conf, |
| 422 | ap_scoreboard_image->parent[slot].pid, |
| 423 | ap_scoreboard_image->parent[slot].generation, |
| 424 | slot, MPM_CHILD_LOST_SLOT); |
| 425 | /* Don't forget about this exiting child process, or we |
| 426 | * won't be able to kill it if it doesn't exit by the |
| 427 | * time the server is shut down. |
| 428 | */ |
| 429 | ap_register_extra_mpm_process(ap_scoreboard_image->parent[slot].pid, |
| 430 | ap_scoreboard_image->parent[slot].generation); |
| 431 | } |
| 432 | |
| 433 | static const char *worker_get_name(void) |
| 434 | { |
no test coverage detected