#endif
}
-static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
+static void process_child_status(ap_proc_t *pid, ap_wait_t status)
{
- pid_t pid;
- ap_get_os_proc(&pid, abs_pid);
/* Child died... if it died due to a fatal error,
* we should simply bail out.
*/
ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, errno, ap_server_conf,
"Child %ld returned a Fatal error... \n"
"Apache is exiting!",
- (long)pid);
+ (long)pid->pid);
exit(APEXIT_CHILDFATAL);
}
if (WIFSIGNALED(status)) {
ap_server_conf,
"child pid %ld exit signal %s (%d), "
"possible coredump in %s",
- (long)pid, (WTERMSIG(status) >= NumSIG) ? "" :
+ (long)pid->pid, (WTERMSIG(status) >= NumSIG) ? "" :
SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status),
ap_coredump_dir);
}
#endif
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, errno,
ap_server_conf,
- "child pid %ld exit signal %s (%d)", (long)pid,
+ "child pid %ld exit signal %s (%d)",
+ (long)pid->pid,
SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status));
#ifdef WCOREDUMP
}
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, errno,
ap_server_conf,
"child pid %ld exit signal %d",
- (long)pid, WTERMSIG(status));
+ (long)pid->pid, WTERMSIG(status));
#endif
}
}
pid = ap_wait_or_timeout(&status, pconf);
if (pid != NULL) {
- pid_t actual_pid;
- ap_get_os_proc(&actual_pid, pid);
process_child_status(pid, status);
/* non-fatal death... note that it's gone in the child table and
* clean out the status table. */
child_slot = -1;
for (i = 0; i < ap_max_daemons_limit; ++i) {
- if (ap_child_table[i].pid == actual_pid) {
+ if (ap_child_table[i].pid == pid->pid) {
int j;
child_slot = i;
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, errno,
ap_server_conf,
"long lost child came home! (pid %ld)",
- (long)actual_pid);
+ (long)pid->pid);
}
/* Don't perform idle maintenance when a child dies,
* only do it when there's a timeout. Remember only a
#endif
}
-static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
+static void process_child_status(ap_proc_t *pid, ap_wait_t status)
{
- pid_t pid;
- ap_get_os_proc(&pid, abs_pid);
/* Child died... if it died due to a fatal error,
* we should simply bail out.
*/
ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, 0, ap_server_conf,
"Child %ld returned a Fatal error... \n"
"Apache is exiting!",
- (long)pid);
+ (long)pid->pid);
exit(APEXIT_CHILDFATAL);
}
if (WIFSIGNALED(status)) {
0, ap_server_conf,
"child pid %ld exit signal %s (%d), "
"possible coredump in %s",
- (long)pid, (WTERMSIG(status) >= NumSIG) ? "" :
+ (long)pid->pid, (WTERMSIG(status) >= NumSIG) ? "" :
SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status),
ap_coredump_dir);
}
#endif
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE,
0, ap_server_conf,
- "child pid %ld exit signal %s (%d)", (long)pid,
+ "child pid %ld exit signal %s (%d)",
+ (long)pid->pid,
SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status));
#ifdef WCOREDUMP
}
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE,
ap_server_conf,
"child pid %ld exit signal %d",
- (long)pid, WTERMSIG(status));
+ (long)pid->pid, WTERMSIG(status));
#endif
}
}
/* Great, we've probably just lost a slot in the
* scoreboard. Somehow we don't know about this child.
*/
- ap_os_proc_t actual_pid;
-
- ap_get_os_proc(&actual_pid, pid);
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, 0,
ap_server_conf,
"long lost child came home! (pid %ld)",
- (long)actual_pid);
+ (long)pid->pid);
}
/* Don't perform idle maintenance when a child dies,
* only do it when there's a timeout. Remember only a