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

Reply via email to