httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Stein <gst...@lyra.org>
Subject Re: idle server processes not going away
Date Fri, 01 Jun 2001 21:02:05 GMT
On Fri, Jun 01, 2001 at 12:18:50PM -0700, rbb@covalent.net 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/

Mime
View raw message