mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-04-27 16:51:06 -07:00
Check in HTML version of the manual (writable on client) so that it will display automatically on the Ravenbrook server and so that we can easily include it in product releases. Copied from Perforce Change: 180338 ServerID: perforce.ravenbrook.com
332 lines
No EOL
22 KiB
HTML
332 lines
No EOL
22 KiB
HTML
|
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
|
|
<title>2. Error handing — Memory Pool System 1.111.0 documentation</title>
|
|
|
|
<link rel="stylesheet" href="../_static/mps.css" type="text/css" />
|
|
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
|
|
|
<script type="text/javascript">
|
|
var DOCUMENTATION_OPTIONS = {
|
|
URL_ROOT: '../',
|
|
VERSION: '1.111.0',
|
|
COLLAPSE_INDEX: false,
|
|
FILE_SUFFIX: '.html',
|
|
HAS_SOURCE: true
|
|
};
|
|
</script>
|
|
<script type="text/javascript" src="../_static/jquery.js"></script>
|
|
<script type="text/javascript" src="../_static/underscore.js"></script>
|
|
<script type="text/javascript" src="../_static/doctools.js"></script>
|
|
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
|
<link rel="top" title="Memory Pool System 1.111.0 documentation" href="../index.html" />
|
|
<link rel="up" title="Reference" href="index.html" />
|
|
<link rel="next" title="3. Arenas" href="arena.html" />
|
|
<link rel="prev" title="1. Interface conventions" href="interface.html" />
|
|
</head>
|
|
<body>
|
|
<div class="related">
|
|
<h3>Navigation</h3>
|
|
<ul>
|
|
<li class="right" style="margin-right: 10px">
|
|
<a href="../genindex.html" title="General Index"
|
|
accesskey="I">index</a></li>
|
|
<li class="right" >
|
|
<a href="arena.html" title="3. Arenas"
|
|
accesskey="N">next</a> |</li>
|
|
<li class="right" >
|
|
<a href="interface.html" title="1. Interface conventions"
|
|
accesskey="P">previous</a> |</li>
|
|
<li><a href="../index.html">Memory Pool System 1.111.0 documentation</a> »</li>
|
|
<li><a href="index.html" accesskey="U">Reference</a> »</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="document">
|
|
<div class="documentwrapper">
|
|
<div class="bodywrapper">
|
|
<div class="body">
|
|
|
|
<div class="section" id="error-handing">
|
|
<span id="topic-error"></span><span id="index-0"></span><h1>2. Error handing<a class="headerlink" href="#error-handing" title="Permalink to this headline">¶</a></h1>
|
|
<p>Operations in the Memory Pool System that might fail return a
|
|
<a class="reference internal" href="../glossary/r.html#term-result-code"><em class="xref std std-term">result code</em></a> of type <a class="reference internal" href="#mps_res_t" title="mps_res_t"><tt class="xref c c-type docutils literal"><span class="pre">mps_res_t</span></tt></a>, rather than a
|
|
“special value” of the return type.</p>
|
|
<p>Success is always indicated by the result code <a class="reference internal" href="#MPS_RES_OK" title="MPS_RES_OK"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_OK</span></tt></a>,
|
|
which is defined to be zero. Other result codes indicate failure, and
|
|
are non-zero.</p>
|
|
<p>The modular nature of the MPS means that it is not usually possible
|
|
for a function description to list the possible error codes that it
|
|
might return. A function in the public interface typically calls
|
|
methods of an <a class="reference internal" href="../glossary/a.html#term-arena-class"><em class="xref std std-term">arena class</em></a> and one or more <a class="reference internal" href="../glossary/p.html#term-pool-class"><em class="xref std std-term">pool
|
|
classes</em></a>, any of which might fail. The MPS is extensible with new
|
|
arena and pool classes, which might fail in new and interesting ways,
|
|
so the only future-proof behaviour is for a <a class="reference internal" href="../glossary/c.html#term-client-program"><em class="xref std std-term">client program</em></a> to
|
|
assume that any MPS function that returns a result code can return
|
|
<em>any</em> result code.</p>
|
|
<dl class="type">
|
|
<dt id="mps_res_t">
|
|
<tt class="descname">mps_res_t</tt><a class="headerlink" href="#mps_res_t" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>The type of <a class="reference internal" href="../glossary/r.html#term-result-code"><em class="xref std std-term">result codes</em></a>. It is a
|
|
<a class="reference internal" href="../glossary/t.html#term-transparent-type"><em class="xref std std-term">transparent alias</em></a> for <tt class="docutils literal"><span class="pre">int</span></tt>, provided
|
|
for convenience and clarity.</p>
|
|
<p>A result code indicates the success or failure of an operation,
|
|
along with the reason for failure. As with error numbers in Unix,
|
|
the meaning of a result code depends on the call that returned it.
|
|
Refer to the documentation of the function for the exact meaning
|
|
of each result code.</p>
|
|
<p>The result codes are:</p>
|
|
<ul class="simple">
|
|
<li><a class="reference internal" href="#MPS_RES_OK" title="MPS_RES_OK"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_OK</span></tt></a>: operation succeeded.</li>
|
|
<li><a class="reference internal" href="#MPS_RES_FAIL" title="MPS_RES_FAIL"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_FAIL</span></tt></a>: operation failed.</li>
|
|
<li><a class="reference internal" href="#MPS_RES_IO" title="MPS_RES_IO"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_IO</span></tt></a>: an input/output error occurred.</li>
|
|
<li><a class="reference internal" href="#MPS_RES_LIMIT" title="MPS_RES_LIMIT"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_LIMIT</span></tt></a>: an internal limitation was exceeded.</li>
|
|
<li><a class="reference internal" href="#MPS_RES_MEMORY" title="MPS_RES_MEMORY"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_MEMORY</span></tt></a>: needed memory could not be obtained.</li>
|
|
<li><a class="reference internal" href="#MPS_RES_RESOURCE" title="MPS_RES_RESOURCE"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_RESOURCE</span></tt></a>: a needed resource could not be
|
|
obtained.</li>
|
|
<li><a class="reference internal" href="#MPS_RES_UNIMPL" title="MPS_RES_UNIMPL"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_UNIMPL</span></tt></a>: operation is not implemented.</li>
|
|
<li><a class="reference internal" href="#MPS_RES_COMMIT_LIMIT" title="MPS_RES_COMMIT_LIMIT"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_COMMIT_LIMIT</span></tt></a>: the arena’s <a class="reference internal" href="../glossary/c.html#term-commit-limit"><em class="xref std std-term">commit
|
|
limit</em></a> would be exceeded.</li>
|
|
<li><a class="reference internal" href="#MPS_RES_PARAM" title="MPS_RES_PARAM"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_PARAM</span></tt></a>: an invalid parameter was passed.</li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
<div class="section" id="result-codes">
|
|
<h2>2.1. Result codes<a class="headerlink" href="#result-codes" title="Permalink to this headline">¶</a></h2>
|
|
<dl class="macro">
|
|
<dt id="MPS_RES_COMMIT_LIMIT">
|
|
<tt class="descname">MPS_RES_COMMIT_LIMIT</tt><a class="headerlink" href="#MPS_RES_COMMIT_LIMIT" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A <a class="reference internal" href="../glossary/r.html#term-result-code"><em class="xref std std-term">result code</em></a> indicating that an operation could not be
|
|
completed as requested without exceeding the <a class="reference internal" href="../glossary/c.html#term-commit-limit"><em class="xref std std-term">commit limit</em></a>.</p>
|
|
<p>You need to deallocate something to make more space, or increase
|
|
the commit limit by calling <a class="reference internal" href="arena.html#mps_arena_commit_limit_set" title="mps_arena_commit_limit_set"><tt class="xref c c-func docutils literal"><span class="pre">mps_arena_commit_limit_set()</span></tt></a>.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="macro">
|
|
<dt id="MPS_RES_FAIL">
|
|
<tt class="descname">MPS_RES_FAIL</tt><a class="headerlink" href="#MPS_RES_FAIL" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A <a class="reference internal" href="../glossary/r.html#term-result-code"><em class="xref std std-term">result code</em></a> indicating that something went wrong that
|
|
does not fall under the description of any other result code. The
|
|
exact meaning depends on the function that returned this result
|
|
code.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="macro">
|
|
<dt id="MPS_RES_IO">
|
|
<tt class="descname">MPS_RES_IO</tt><a class="headerlink" href="#MPS_RES_IO" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A <a class="reference internal" href="../glossary/r.html#term-result-code"><em class="xref std std-term">result code</em></a> indicating that an input/output error
|
|
occurred. The exact meaning depends on the function that returned
|
|
this result code.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="macro">
|
|
<dt id="MPS_RES_LIMIT">
|
|
<tt class="descname">MPS_RES_LIMIT</tt><a class="headerlink" href="#MPS_RES_LIMIT" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A <a class="reference internal" href="../glossary/r.html#term-result-code"><em class="xref std std-term">result code</em></a> indicating that an operation could not be
|
|
completed as requested because of an internal limitation of the
|
|
MPS. The exact meaning depends on the function that returned this
|
|
result code.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="macro">
|
|
<dt id="MPS_RES_MEMORY">
|
|
<tt class="descname">MPS_RES_MEMORY</tt><a class="headerlink" href="#MPS_RES_MEMORY" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A <a class="reference internal" href="../glossary/r.html#term-result-code"><em class="xref std std-term">result code</em></a> indicating that an operation could not be
|
|
completed because there wasn’t enough memory available.</p>
|
|
<p>You need to deallocate something or allow the <a class="reference internal" href="../glossary/g.html#term-garbage-collector"><em class="xref std std-term">garbage
|
|
collector</em></a> to reclaim something to free enough memory, or expand
|
|
the <a class="reference internal" href="../glossary/a.html#term-arena"><em class="xref std std-term">arena</em></a> (if you’re using an arena for which that does
|
|
not happen automatically).</p>
|
|
<div class="admonition-note admonition">
|
|
<p class="first admonition-title">Note</p>
|
|
<p>Failing to acquire enough memory because the <a class="reference internal" href="../glossary/c.html#term-commit-limit"><em class="xref std std-term">commit
|
|
limit</em></a> would have been exceeded is indicated by returning
|
|
<a class="reference internal" href="#MPS_RES_COMMIT_LIMIT" title="MPS_RES_COMMIT_LIMIT"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_COMMIT_LIMIT</span></tt></a>, not <tt class="docutils literal"><span class="pre">MPS_RES_MEMORY</span></tt>.</p>
|
|
<p class="last">Running out of <a class="reference internal" href="../glossary/a.html#term-address-space"><em class="xref std std-term">address space</em></a> (as might happen in
|
|
<a class="reference internal" href="../glossary/v.html#term-virtual-memory"><em class="xref std std-term">virtual memory</em></a> systems) is indicated by returning
|
|
<a class="reference internal" href="#MPS_RES_RESOURCE" title="MPS_RES_RESOURCE"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_RESOURCE</span></tt></a>, not <tt class="docutils literal"><span class="pre">MPS_RES_MEMORY</span></tt>.</p>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="macro">
|
|
<dt id="MPS_RES_OK">
|
|
<tt class="descname">MPS_RES_OK</tt><a class="headerlink" href="#MPS_RES_OK" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A <a class="reference internal" href="../glossary/r.html#term-result-code"><em class="xref std std-term">result code</em></a> indicating that an operation succeeded.</p>
|
|
<p>If a function takes an <a class="reference internal" href="../glossary/o.html#term-out-parameter"><em class="xref std std-term">out parameter</em></a> or an <a class="reference internal" href="../glossary/i.html#term-in-out-parameter"><em class="xref std std-term">in/out
|
|
parameter</em></a>, this parameter will only be updated if
|
|
<a class="reference internal" href="#MPS_RES_OK" title="MPS_RES_OK"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_OK</span></tt></a> is returned. If any other result code is
|
|
returned, the parameter will be left untouched by the function.</p>
|
|
<p><a class="reference internal" href="#MPS_RES_OK" title="MPS_RES_OK"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_OK</span></tt></a> is zero.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="macro">
|
|
<dt id="MPS_RES_PARAM">
|
|
<tt class="descname">MPS_RES_PARAM</tt><a class="headerlink" href="#MPS_RES_PARAM" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A <a class="reference internal" href="../glossary/r.html#term-result-code"><em class="xref std std-term">result code</em></a> indicating that an operation could not be
|
|
completed as requested because an invalid parameter was passed to
|
|
the operation. The exact meaning depends on the function that
|
|
returned this result code.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="macro">
|
|
<dt id="MPS_RES_RESOURCE">
|
|
<tt class="descname">MPS_RES_RESOURCE</tt><a class="headerlink" href="#MPS_RES_RESOURCE" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A <a class="reference internal" href="../glossary/r.html#term-result-code"><em class="xref std std-term">result code</em></a> indicating that an operation could not be
|
|
completed as requested because the MPS could not obtain a needed
|
|
resource. The resource in question depends on the operation.</p>
|
|
<p>Two special cases have their own result codes: when the MPS runs
|
|
out of committed memory, it returns <a class="reference internal" href="#MPS_RES_MEMORY" title="MPS_RES_MEMORY"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_MEMORY</span></tt></a>, and
|
|
when it cannot proceed without exceeding the <a class="reference internal" href="../glossary/c.html#term-commit-limit"><em class="xref std std-term">commit limit</em></a>,
|
|
it returns <a class="reference internal" href="#MPS_RES_COMMIT_LIMIT" title="MPS_RES_COMMIT_LIMIT"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_COMMIT_LIMIT</span></tt></a>.</p>
|
|
<p>This result code can be returned when the MPS runs out of
|
|
<a class="reference internal" href="../glossary/v.html#term-virtual-memory"><em class="xref std std-term">virtual memory</em></a>. If this happens, you need to reclaim
|
|
memory within your process (as for the result code
|
|
<a class="reference internal" href="#MPS_RES_MEMORY" title="MPS_RES_MEMORY"><tt class="xref c c-macro docutils literal"><span class="pre">MPS_RES_MEMORY</span></tt></a>), or terminate other processes running
|
|
on the same machine.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="macro">
|
|
<dt id="MPS_RES_UNIMPL">
|
|
<tt class="descname">MPS_RES_UNIMPL</tt><a class="headerlink" href="#MPS_RES_UNIMPL" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A <a class="reference internal" href="../glossary/r.html#term-result-code"><em class="xref std std-term">result code</em></a> indicating that an operation, or some vital
|
|
part of it, is not implemented.</p>
|
|
<p>This might be returned by functions that are no longer supported,
|
|
or by operations that are included for future expansion, but not
|
|
yet supported.</p>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
<div class="section" id="assertions">
|
|
<span id="topic-error-assertion"></span><span id="index-1"></span><h2>2.2. Assertions<a class="headerlink" href="#assertions" title="Permalink to this headline">¶</a></h2>
|
|
<p>Bugs in the <a class="reference internal" href="../glossary/c.html#term-client-program"><em class="xref std std-term">client program</em></a> may violate the invariants that the
|
|
MPS relies on. Most functions in the MPS (in most <em>varieties</em>; see
|
|
below) assert the correctness of their data structures, so these bugs
|
|
will often be discovered by an assertion failure in the MPS.</p>
|
|
<p>For example, if a <a class="reference internal" href="../glossary/s.html#term-scan-method"><em class="xref std std-term">scan method</em></a> makes a re-entrant call into the
|
|
MPS, this may result in this assertion:</p>
|
|
<div class="highlight-none"><div class="highlight"><pre>MPS ASSERTION FAILURE: res == 0
|
|
code/lockix.c
|
|
125
|
|
</pre></div>
|
|
</div>
|
|
<p>Or if a client program fails to fix a reference in an <a class="reference internal" href="../pool/amc.html#pool-amc"><em>AMC (Automatic Mostly-Copying)</em></a>
|
|
pool, this may violate the <a class="reference internal" href="../glossary/t.html#term-tri-colour-invariant"><em class="xref std std-term">tri-colour invariant</em></a> that the MPS
|
|
depends on for the correctness of its <a class="reference internal" href="../glossary/i.html#term-incremental-garbage-collection"><em class="xref std std-term">incremental garbage
|
|
collection</em></a>. Such a bug may result in this assertion:</p>
|
|
<div class="highlight-none"><div class="highlight"><pre>MPS ASSERTION FAILURE: !AMS_IS_INVALID_COLOUR(seg, i)
|
|
code/poolams.c
|
|
1323
|
|
</pre></div>
|
|
</div>
|
|
<p>It is very rare for an assertion to indicate a bug in the MPS rather
|
|
than the client program, but it is not unknown, so if you have made
|
|
every effort to track down the cause (see <a class="reference internal" href="../guide/debug.html#guide-debug"><em>Debugging with the Memory Pool System</em></a>) without
|
|
luck, <a class="reference internal" href="../contact.html#contact"><em>get in touch</em></a>.</p>
|
|
<p>If you are running your MPS-enabled program from Emacs via the
|
|
<tt class="docutils literal"><span class="pre">compile</span></tt> command, you will probably want to recognize MPS
|
|
assertions automatically, by adding the following to your <tt class="docutils literal"><span class="pre">.emacs</span></tt>:</p>
|
|
<div class="highlight-scheme"><div class="highlight"><pre><span class="p">(</span><span class="nf">add-to-list</span> <span class="ss">'compilation-error-regexp-alist</span>
|
|
<span class="o">'</span><span class="p">(</span><span class="s">"MPS ASSERTION FAILURE: .*\n\\(.*\\)\n\\([0-9]+\\)"</span> <span class="mi">1</span> <span class="mi">2</span><span class="p">))</span>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="varieties">
|
|
<span id="index-2"></span><h2>2.3. Varieties<a class="headerlink" href="#varieties" title="Permalink to this headline">¶</a></h2>
|
|
<p>The MPS has three behaviours with respect to internal checking and
|
|
<a class="reference internal" href="telemetry.html#topic-telemetry"><em>telemetry</em></a>, which need to be selected at
|
|
compile time, by defining one of the following preprocessor
|
|
constants. If none is specified then <a class="reference internal" href="#CONFIG_VAR_HOT" title="CONFIG_VAR_HOT"><tt class="xref c c-macro docutils literal"><span class="pre">CONFIG_VAR_HOT</span></tt></a> is the
|
|
default.</p>
|
|
<span class="target" id="index-3"></span><dl class="macro">
|
|
<dt id="CONFIG_VAR_COOL">
|
|
<tt class="descname">CONFIG_VAR_COOL</tt><a class="headerlink" href="#CONFIG_VAR_COOL" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>The cool variety is intended for development and testing.</p>
|
|
<p>All functions check the consistency of their data structures and
|
|
may assert, including function on the <a class="reference internal" href="../glossary/c.html#term-critical-path"><em class="xref std std-term">critical path</em></a>.</p>
|
|
<p>All events are sent to the <a class="reference internal" href="../glossary/t.html#term-telemetry-stream"><em class="xref std std-term">telemetry stream</em></a>, including
|
|
events on the <a class="reference internal" href="../glossary/c.html#term-critical-path"><em class="xref std std-term">critical path</em></a>.</p>
|
|
</dd></dl>
|
|
|
|
<span class="target" id="index-4"></span><dl class="macro">
|
|
<dt id="CONFIG_VAR_HOT">
|
|
<tt class="descname">CONFIG_VAR_HOT</tt><a class="headerlink" href="#CONFIG_VAR_HOT" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>The hot variety is intended for production and deployment.</p>
|
|
<p>Some functions check the consistency of their data structures and
|
|
may assert, namely those not on the <a class="reference internal" href="../glossary/c.html#term-critical-path"><em class="xref std std-term">critical path</em></a>.</p>
|
|
<p>Some events are sent to the telemetry stream, namely those not on
|
|
the <a class="reference internal" href="../glossary/c.html#term-critical-path"><em class="xref std std-term">critical path</em></a>.</p>
|
|
</dd></dl>
|
|
|
|
<span class="target" id="index-5"></span><dl class="macro">
|
|
<dt id="CONFIG_VAR_RASH">
|
|
<tt class="descname">CONFIG_VAR_RASH</tt><a class="headerlink" href="#CONFIG_VAR_RASH" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>The rash variety is intended for mature integrations, or for
|
|
developers who like living dangerously.</p>
|
|
<p>No functions check the consistency of their data structures and
|
|
consequently there are no assertions.</p>
|
|
<p>No events are sent to the telemetry stream.</p>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sphinxsidebar">
|
|
<div class="sphinxsidebarwrapper">
|
|
<p class="logo"><a href="../index.html">
|
|
<img class="logo" src="../_static/logo.png" alt="Logo"/>
|
|
</a></p>
|
|
<h3><a href="../index.html">Table Of Contents</a></h3>
|
|
<ul>
|
|
<li><a class="reference internal" href="#">2. Error handing</a><ul>
|
|
<li><a class="reference internal" href="#result-codes">2.1. Result codes</a></li>
|
|
<li><a class="reference internal" href="#assertions">2.2. Assertions</a></li>
|
|
<li><a class="reference internal" href="#varieties">2.3. Varieties</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<h4>Previous topic</h4>
|
|
<p class="topless"><a href="interface.html"
|
|
title="previous chapter">1. Interface conventions</a></p>
|
|
<h4>Next topic</h4>
|
|
<p class="topless"><a href="arena.html"
|
|
title="next chapter">3. Arenas</a></p><h4>Contact us</h4>
|
|
|
|
<p class="topless"><a href="mailto:mps-questions@ravenbrook.com">mps-questions@ravenbrook.com</a></p>
|
|
</div>
|
|
</div>
|
|
<div class="clearer"></div>
|
|
</div>
|
|
<div class="related">
|
|
<h3>Navigation</h3>
|
|
<ul>
|
|
<li class="right" style="margin-right: 10px">
|
|
<a href="../genindex.html" title="General Index"
|
|
>index</a></li>
|
|
<li class="right" >
|
|
<a href="arena.html" title="3. Arenas"
|
|
>next</a> |</li>
|
|
<li class="right" >
|
|
<a href="interface.html" title="1. Interface conventions"
|
|
>previous</a> |</li>
|
|
<li><a href="../index.html">Memory Pool System 1.111.0 documentation</a> »</li>
|
|
<li><a href="index.html" >Reference</a> »</li>
|
|
</ul>
|
|
</div>
|
|
<div class="footer">
|
|
© <a href="../copyright.html">Copyright</a> 2012, Ravenbrook Limited.
|
|
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
|
|
</div>
|
|
</body>
|
|
</html> |