<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->

<!--
 Copyright 2002-2005 The Apache Software Foundation or its licensors, as
 applicable.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="beos.xml.meta">

<name>beos</name>
<description>This Multi-Processing Module is optimized for BeOS.</description>
<status>MPM</status>
<sourcefile>beos.c</sourcefile>
<identifier>mpm_beos_module</identifier>

<summary>
    <p>This Multi-Processing Module (MPM) is the default for BeOS. It uses
      a single control process which creates threads to handle requests.</p>
</summary>
<seealso><a href="../bind.html">Setting which addresses and ports Apache
uses</a></seealso>

<directivesynopsis location="mpm_common"><name>User</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Group</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Listen</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ReceiveBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>StartThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxClients</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>PidFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
</directivesynopsis>

<directivesynopsis>
<name>MaxRequestsPerThread</name>
<description>Limit on the number of requests that an individual thread
will handle during its life</description>
<syntax>MaxRequestsPerThread <var>number</var></syntax>
<default>MaxRequestsPerThread 0</default>
<contextlist><context>server config</context></contextlist>

<usage>
    <p>The <directive>MaxRequestsPerThread</directive> directive sets
    the limit on the number of requests that an individual server thread
    will handle. After <directive>MaxRequestsPerThread</directive>
    requests, the thread will die. If <directive
    >MaxRequestsPerThread</directive> is <code>0</code>, then the thread
    will never expire.</p>

    <p>Setting <directive>MaxRequestsPerThread</directive> to a
    non-zero limit has two beneficial effects:</p>

    <ul>
      <li>it limits the amount of memory that a thread can consume
      by (accidental) memory leakage;</li>

      <li>by giving threads a finite lifetime, it helps reduce
      the number of threads when the server load reduces.</li>
    </ul>

    <note><title>Note:</title>
      <p>For <directive module="core">KeepAlive</directive> requests, only
      the first request is counted towards this limit. In effect, it
      changes the behavior to limit the number of <em>connections</em>
      per thread.</p>
    </note>
</usage>
</directivesynopsis>

</modulesynopsis>

