Document mps_key_interior for amcz, and mention it in the pool introduction.

Copied from Perforce
 Change: 185128
 ServerID: perforce.ravenbrook.com
This commit is contained in:
Gareth Rees 2014-04-01 17:13:47 +01:00
parent 1fc2bbe52b
commit 64c94ff8be
2 changed files with 11 additions and 1 deletions

View file

@ -68,12 +68,18 @@ AMCZ interface
method`, an :term:`is-forwarded method` and a :term:`padding
method`.
It accepts one optional keyword argument:
It accepts two optional keyword arguments:
* :c:macro:`MPS_KEY_CHAIN` (type :c:type:`mps_chain_t`) specifies
the :term:`generation chain` for the pool. If not specified, the
pool will use the arena's default chain.
* :c:macro:`MPS_KEY_INTERIOR` (type :c:type:`mps_bool_t`, default
``TRUE``) specifies whether :term:`ambiguous <ambiguous
reference>` :term:`interior pointers` to blocks in the pool keep
objects alive. If this is ``FALSE``, then only :term:`client
pointers` keep objects alive.
For example::
MPS_ARGS_BEGIN(args) {

View file

@ -193,6 +193,10 @@ Blocks may use :term:`in-band headers`? yes yes yes yes yes
just past the end of the header) is considered to be a
reference to the block.
Pools that support internal pointers can be switched to
base pointers only, by setting the optional keyword
argument :c:macro:`MPS_KEY_INTERIOR` to ``FALSE`` when
calling :c:func:`mps_pool_create_k`.
.. index::
single: pool class; writing