summaryrefslogtreecommitdiff
path: root/docs/manual/mod/leader.xml
blob: cf6b93a9a4725de530546b2c4469c3f31c2f5d01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>

<modulesynopsis metafile="leader.xml.meta">
<name>leader</name>
<description>An experimental variant of the standard <module>worker</module>
MPM</description>
<status>MPM</status>
<sourcefile>leader.c</sourcefile>
<identifier>mpm_leader_module</identifier>

<summary>
    <note type="warning"><title>Warning</title>
      <p>This MPM is experimental, so it may or may not work
      as expected.</p>
    </note>
    
    <p>This is an experimental variant of the standard
    <module>worker</module> MPM. It uses a Leader/Followers design pattern
    to coordinate work among threads. For more info, see <a
    href="http://deuce.doc.wustl.edu/doc/pspdfs/lf.pdf"
    >http://deuce.doc.wustl.edu/doc/pspdfs/lf.pdf</a>.</p>

    <p>To use the <module>leader</module> MPM, add
    <code>--with-mpm=leader</code> to the configure script's arguments
    when building the httpd.</p>
  
    <p>This MPM depends on APR's atomic compare-and-swap operations for
    thread synchronization. If you are compiling for an x86 target
    and you don't need to support 386s, or you are compiling for a
    SPARC and you don't need to run on pre-UltraSPARC chips, add
    <code>--enable-nonportable-atomics=yes</code> to the configure
    script's arguments. This will cause APR to implement atomic operations
    using efficient opcodes not available in older CPUs.</p>
</summary>

<directivesynopsis location="mpm_common"><name>AcceptMutex</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</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>SendBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>LockFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxClients</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>PidFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ServerLimit</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>StartServers</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ThreadLimit</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>User</name>
</directivesynopsis>

</modulesynopsis>