httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Ames <>
Subject Re: [PATCH] get threaded MPM to terminate
Date Wed, 25 Apr 2001 14:02:48 GMT wrote:
> I now have a patch that compiles cleanly, and should completely remove the
> pipe_of_death.  The basic idea is that everything is done through signals,
> using the SIGWAIT logic.  As for waking threads up from apr_poll, that is
> done by connecting to the socket from the server itself, and then
> immediately closing the socket.

> The idea for the patch came in a conversation with Greg Ames earlier
> today, so he deserves the share the credit for the patch.  :-)

Mostly I deserve credit for pissing Ryan off enough to get his creative
juices flowing in a good direction.  Apparently that's a useful thing to
do once in a while. :-)

There are a couple of things I really like about this idea:

* If we minimize the number of different control paths into the child
processes, we minimize race conditions, minimize path length in
worker_thread, and maximize reliability.  With the pipe of death gone,
there will be one control path into the child, namely signals.

* (drum roll...) SINGLE_LISTEN_UNSERIALIZED_ACCEPT becomes possible once
more.  This means we have a potential gain in scalability in the
threaded mpm, as well as shrinking worker_thread path length some more. 
Look out Zeus, iPlanet, and IIS!  oh yeah, we still have a problem with
malloc/free, but we kinda sorta have a direction to take care of that. 
Yes, there are some messy details to work out to get S_L_U_A working
reliably, but it's worth it.


View raw message