|Subject:||Re: svn commit: r1395417 - in /httpd/httpd/trunk/docs/manual: mpm.html.en mpm.xml|
|From:||Rich Bowen (rbo...@rcbowen.com)|
|Date:||Oct 8, 2012 4:37:26 pm|
--- httpd/httpd/trunk/docs/manual/mpm.html.en (original)
+++ httpd/httpd/trunk/docs/manual/mpm.html.en Sun Oct 7 22:59:14 2012
@@ -99,6 +99,28 @@ choice at compile-time.</p>
<code class="module"><a href="./mod/event.html">event</a></code>, depending
on platform capabilities</td></tr> <tr class="odd"><td>Windows</td><td><code class="module"><a
href="./mod/mpm_winnt.html">mpm_winnt</a></code></td></tr> </table> + +<div class="note"><p>Here, 'Unix' is used to mean Unix-like operating systems,
such as +Linux, BSD, Solaris, Mac OS X, etc.</p></div> + +<p>In the case of Unix, the decision as to which MPM is installed is +based on two questions:</p> +<p>1. Does the system support <a
href="http://en.wikipedia.org/wiki/Threads_(computer_science)">threads</a>?</p> +<p>2. Does the system support <a href="http://en.wikipSo,
edia.org/wiki/Polling_(computer_science)">polling</a>?</p> + +<p>If the answer to both questions is 'yes', the default MPM is +<code class="module"><a href="./mod/event.html">event</a></code>.</p>
It isn't that simple.
APR_POLLSET_THREADSAFE has to be supported, and that is more than the well-known capabilities of threads and polling.
APR_POLLSET_THREADSAFE means that the platform has an advanced polling mechanism which allows pollsets to be manipulated in a certain way, and that APR has an implementation that uses that mechanism.
Linux, Solaris, and FreeBSD/Mac OS X are platforms that satisify both characteristics. z/OS is a platform that has an advanced polling mechanism but without an APR implementation in the stable branches. Neither AIX nor HP-UX have APR implementations, though I'd guess that the OS has the feature and nobody has gotten around to exploiting it in APR.
So, how about:
In the case of Unix, the decision as to which MPM is installed by default is
based on two questions:
1. Does the system support threading? 2. Does the system support APR_POLLSET_THREADSAFE?
Linux, Solaris, FreeBSD and Mac OS X are platforms that satisfy both
If the answer to both questions is 'yes', the default MPM is event.
If The answer to #1 is 'yes', but the answer to #2 is 'no', the default will be
If the answer to both questions is 'no', then the default MPM will be prefork.
(strike last sentence) =========================================
Or, is it better to leave off the details entirely? I thought it would be good
to give folks an idea of what the default are. For most people, the default will
presumably be event ... except when it's not. Right?