On Thu, Oct 18, 2001 at 01:44:08PM -0400, Jeff Trawick wrote:
> Here is yet another patch. When compared with the previous patch,
> this one adds the native status to the parameter lists of
> apr_proc_wait() and apr_proc_wait_all_procs(). Fewer MPM changes are
> necessary.
>
> missing: fix the doc in apr_thread_proc.h
> roll the changes into apr/threadproc/foo/proc.c, foo != unix
>
> untested, but there isn't much to screw up
>
> The interfaces are the important thing to look at.
Yeah. Looks good except for one caveat (see below).
> if (WIFEXITED(exit_int)) {
> - if (exitcode != NULL) {
> - *exitcode = WEXITSTATUS(exit_int);
> - }
> - return APR_CHILD_DONE;
> + *exithow = APR_CHILD_NORMAL_EXIT;
> + *exitcode_or_signal = WEXITSTATUS(exit_int);
> + }
> + else if (WIFSIGNALED(exit_int)) {
> + *exithow = APR_CHILD_SIGNAL_EXIT;
> + *exitcode_or_signal = WTERMSIG(exit_int);
> + }
> + else {
> + /* unexpected condition */
> + return APR_EGENERAL;
> }
> - return APR_CHILD_NOTDONE;
> + return APR_CHILD_DONE;
> }
I think WIFSTOPPED needs to be checked (do all platforms have this?
Linux does). But, I'm not sure that should return APR_CHILD_DONE or
NOTDONE - since the process may resume later on. This gets hairy.
Also, is returning APR_EGENERAL the right thing to do when we don't
recognize the exithow? -- justin