in modules/fcgid/fcgid_pm_main.c [637:666]
apr_status_t pm_main(server_rec * main_server, apr_pool_t * configpool)
{
fcgid_command command;
while (1) {
if (procmgr_must_exit())
break;
/* Wait for command */
if (procmgr_fetch_cmd(&command, main_server) == APR_SUCCESS) {
if (is_spawn_allowed(main_server, &command))
fastcgi_spawn(&command, main_server, configpool);
procmgr_finish_notify(main_server);
}
/* Move matched node to error list */
scan_idlelist_zombie(main_server);
scan_idlelist(main_server);
scan_busylist(main_server);
/* Kill() and wait() nodes in error list */
scan_errorlist(main_server);
}
/* Stop all processes */
kill_all_subprocess(main_server);
return APR_SUCCESS;
}