On 06/27/2007 07:52 PM, Joe Orton wrote:
> Index: server/mpm_common.c > =================================================================== > --- server/mpm_common.c (revision 549489) > +++ server/mpm_common.c (working copy) > @@ -305,6 +305,27 @@ > cur_extra = next; > } > } > + > +apr_status_t ap_mpm_safe_kill(pid_t pid, int sig) > +{ > + apr_proc_t proc; > + apr_status_t waitret; > + > + /* Ensure the given pid is greater than zero; passing waitpid() a > + * zero or negative pid has different semantics. */ Ok, it seems as I am trying to become the king of all nitpickers :-): Style of comment. > + if (pid < 1) { > + return APR_EINVAL; > + } > + > + proc.pid = pid; > + waitret = apr_proc_wait(&proc, NULL, NULL, APR_NOWAIT); > + if (waitret == APR_CHILD_NOTDONE) { > + return kill(pid, sig) ? errno : APR_SUCCESS; > + } > + else { > + return APR_EINVAL; Hm. Wouldn't it make sense to log this in the case waitret != APR_CHILD_DONE as in the PID table patches? This could give the admin a hint that something is rotten on his box. Regards Rüdiger