> > The easiest way to remove the S_L_U_A from the worker MPM is to
remove
> all
> > signals from the MPM.
> 
> ++++1!
> 
> > Basically, we have a single thread that currently
> > sits in sigwait, which is just waiting for a signal.  We then have
every
> > other thread sitting in accept waiting for something to wake them
up,
> > either a real connection or a fake one for the POD.  It makes a lot
of
> > sense to make the parent process always use the POD for all
> > communication.  If this happens, then the thread sitting in sigwait
> could
> > easily just sit in poll waiting for data from the parent.  If it
gets a
> !,
> > then the process should just die, if it gets a #, then it should
perform
> a
> > graceful (The chars don't matter, just the idea).  Since the thread
in
> > poll() is always the main thread, it is just fine to just call exit
to
> > terminate the process immediately.
> 
> Perhaps not fine to just call exit on a shutdown. I think Linux (at
least
> some kernel
> levels) has a serious problem with letting the main thread die w/o
killing
> off the other
> threads in the process first. If you let the main thread exit before
> allowing the other
> threads to exit, you end up with a hosed process that doesn't go away.
I
> presume this is a
> bug in the Linux pthread implementation...

You may be right about that, I can't really remember.  However, we have
the same problem right now, because we have a single thread that sits in
a sigwait, waiting for a signal in the graceless case.  Moving it to
listening on a pipe shouldn't change the rest of the logic.  So if this
is a bug, we already know how to deal with it hopefully.  :-)

Ryan

Reply via email to