On Fri, Jun 01, 2001 at 12:18:50PM -0700, [EMAIL PROTECTED] wrote:
>...
> > As I see it, prefork wants to use signals as the way to tell child
> > processes to go away. Doing much in the signal handler is
> > problematic. Instead we need to 1) longjmp() from the signal handler to
> > a safe spot and exit from there or
You cannot longjmp() out of a signal handler. That is sure to cause
problems. I don't think you'd run for long if you did that.
> > 2) we make sure we wake up when the
> > signal handler returns. Do you have a third suggestion?
> >
> > I'll post a patch in the next few minutes for solution 2. It seems to
> > work fine.
>
> I think the only way to really solve this, is to look at how the longjmp()
> was used in 1.3 to ensure we died correctly. I would also suggest looking
> at how threaded dies. If the real problem is the signal handling, then I
> would suggest that Dean was correct about signals and daemons, and we
> should just remove all singals and use the pipe_of_death for all Unix
> MPMs.
Dean has always been right about signals. They are really poor ways to
communicate with code.
The pipe_of_death is really the way to go.
Cheers,
-g
--
Greg Stein, http://www.lyra.org/