Browse Source

re-generated docs with updated edown

Ulf Wiger 14 years ago
parent
commit
68e0d19edd
7 changed files with 714 additions and 263 deletions
  1. 19 8
      doc/README.md
  2. 461 188
      doc/gproc.md
  3. 28 7
      doc/gproc_app.md
  4. 147 42
      doc/gproc_dist.md
  5. 22 6
      doc/gproc_init.md
  6. 13 6
      doc/gproc_lib.md
  7. 24 6
      doc/gproc_sup.md

+ 19 - 8
doc/README.md

@@ -1,17 +1,22 @@
 
 
 
 
-#The gproc application#
+<h1>The gproc application</h1>
+
 The gproc application
 The gproc application
 =====================
 =====================
 Extended process dictionary
 Extended process dictionary
 
 
 
 
-##Introduction##
+<h2>Introduction</h2>
+
 .
 .
+
 __Authors:__ Ulf Wiger ([`ulf.wiger@erlang-consulting.com`](mailto:ulf.wiger@erlang-consulting.com)), Joseph Wayne Norton ([`norton@geminimobile.com`](mailto:norton@geminimobile.com)).Extended process dictionary
 __Authors:__ Ulf Wiger ([`ulf.wiger@erlang-consulting.com`](mailto:ulf.wiger@erlang-consulting.com)), Joseph Wayne Norton ([`norton@geminimobile.com`](mailto:norton@geminimobile.com)).Extended process dictionary
 
 
 
 
-##Introduction##
+<h2>Introduction</h2>
+
+
 
 
 
 
 
 
@@ -19,19 +24,22 @@ Gproc was first introduced at the ACM SIGPLAN Erlang Workshop in
 Freiburg 2007 ([Paper available here](erlang07-wiger.pdf)).
 Freiburg 2007 ([Paper available here](erlang07-wiger.pdf)).
 
 
 
 
+
 This application was designed to meet the following requirements:
 This application was designed to meet the following requirements:
 
 
 
 
 
 
+
 <li>
 <li>
-  A process can register itself using any term.
-  A process can register more than one name
-  A process can publish non-unique {Key,Value} 'properties' 
-  The registry must be efficiently searchable
+A process can register itself using any term.
+A process can register more than one name
+A process can publish non-unique {Key,Value} 'properties' 
+The registry must be efficiently searchable
 </li>
 </li>
 
 
 
 
 
 
+
 As additional features, the registry was designed to allow global
 As additional features, the registry was designed to allow global
 registration, and a special {Key,Value} property called a counter.
 registration, and a special {Key,Value} property called a counter.
 It is also possible to create an 'aggregate counter', which will
 It is also possible to create an 'aggregate counter', which will
@@ -40,7 +48,9 @@ continuously reflect the sum of all counters with the same name.
 _In its current state, the global registration facility is brokenand should not be used. It will be migrated over to a new version of gen_leader. This work will be done with low priority unless peopleexpress a strong urge to use this functionality._
 _In its current state, the global registration facility is brokenand should not be used. It will be migrated over to a new version of gen_leader. This work will be done with low priority unless peopleexpress a strong urge to use this functionality._
 
 
 
 
-##Modules##
+<h2 class="indextitle">Modules</h2>
+
+
 
 
 <table width="100%" border="0" summary="list of modules">
 <table width="100%" border="0" summary="list of modules">
 <tr><td><a href="gproc.md" class="module">gproc</a></td></tr>
 <tr><td><a href="gproc.md" class="module">gproc</a></td></tr>
@@ -49,3 +59,4 @@ _In its current state, the global registration facility is brokenand should not
 <tr><td><a href="gproc_init.md" class="module">gproc_init</a></td></tr>
 <tr><td><a href="gproc_init.md" class="module">gproc_init</a></td></tr>
 <tr><td><a href="gproc_lib.md" class="module">gproc_lib</a></td></tr>
 <tr><td><a href="gproc_lib.md" class="module">gproc_lib</a></td></tr>
 <tr><td><a href="gproc_sup.md" class="module">gproc_sup</a></td></tr></table>
 <tr><td><a href="gproc_sup.md" class="module">gproc_sup</a></td></tr></table>
+

+ 461 - 188
doc/gproc.md

@@ -2,613 +2,886 @@ Module gproc
 ============
 ============
 
 
 
 
-#Module gproc#
+<h1>Module gproc</h1>
+
 * [Description](#description)
 * [Description](#description)
 * [Data Types](#types)
 * [Data Types](#types)
 * [Function Index](#index)
 * [Function Index](#index)
 * [Function Details](#functions)
 * [Function Details](#functions)
 Extended process registry.
 Extended process registry.
+
+
+
 __Behaviours:__ [`gen_server`](gen_server.html).
 __Behaviours:__ [`gen_server`](gen_server.html).
+
 __Authors:__ Ulf Wiger ([`ulf.wiger@erlang-consulting.com`](mailto:ulf.wiger@erlang-consulting.com)).
 __Authors:__ Ulf Wiger ([`ulf.wiger@erlang-consulting.com`](mailto:ulf.wiger@erlang-consulting.com)).
 
 
-##<a name="description">Description</a>##
-Extended process registry
-  
+<h2><a name="description">Description</a></h2>
+
+
+
 This module implements an extended process registry
 This module implements an extended process registry
-  
+
+
 For a detailed description, see
 For a detailed description, see
-  [erlang07-wiger.pdf](erlang07-wiger.pdf).
- 
+[erlang07-wiger.pdf](erlang07-wiger.pdf).
+
+
+<h2><a name="types">Data Types</a></h2>
 
 
-##<a name="types">Data Types</a>##
 
 
 <a name="type-context"></a>
 <a name="type-context"></a>
 
 
 
 
-###context()##
+<h3 class="typedecl">context()</h3>
+
+<tt>context() = {<a href="#type-scope">scope()</a>, <a href="#type-type">type()</a>} | <a href="#type-type">type()</a></tt>
 
 
-`context() = {[scope()](#type-scope), [type()](#type-type)} | [type()](#type-type)`
 Local scope is the default
 Local scope is the default
 <a name="type-headpat"></a>
 <a name="type-headpat"></a>
 
 
 
 
-###headpat()##
+<h3 class="typedecl">headpat()</h3>
 
 
-`headpat() = {[keypat()](#type-keypat), [pidpat()](#type-pidpat), ValPat}`
+<tt>headpat() = {<a href="#type-keypat">keypat()</a>, <a href="#type-pidpat">pidpat()</a>, ValPat}</tt>
 <a name="type-key"></a>
 <a name="type-key"></a>
 
 
 
 
-###key()##
+<h3 class="typedecl">key()</h3>
 
 
-`key() = {[type()](#type-type), [scope()](#type-scope), any()}`
+<tt>key() = {<a href="#type-type">type()</a>, <a href="#type-scope">scope()</a>, any()}</tt>
 <a name="type-keypat"></a>
 <a name="type-keypat"></a>
 
 
 
 
-###keypat()##
+<h3 class="typedecl">keypat()</h3>
 
 
-`keypat() = {[sel_type()](#type-sel_type) | [sel_var()](#type-sel_var), l | g | [sel_var()](#type-sel_var), any()}`
+<tt>keypat() = {<a href="#type-sel_type">sel_type()</a> | <a href="#type-sel_var">sel_var()</a>, l | g | <a href="#type-sel_var">sel_var()</a>, any()}</tt>
 <a name="type-pidpat"></a>
 <a name="type-pidpat"></a>
 
 
 
 
-###pidpat()##
+<h3 class="typedecl">pidpat()</h3>
+
+<tt>pidpat() = pid() | <a href="#type-sel_var">sel_var()</a></tt>
 
 
-`pidpat() = pid() | [sel_var()](#type-sel_var)`
 sel_var() = DollarVar | '_'.
 sel_var() = DollarVar | '_'.
 <a name="type-scope"></a>
 <a name="type-scope"></a>
 
 
 
 
-###scope()##
+<h3 class="typedecl">scope()</h3>
+
+<tt>scope() = l | g</tt>
 
 
-`scope() = l | g`
 l = local registration; g = global registration
 l = local registration; g = global registration
 <a name="type-sel_pattern"></a>
 <a name="type-sel_pattern"></a>
 
 
 
 
-###sel_pattern()##
+<h3 class="typedecl">sel_pattern()</h3>
 
 
-`sel_pattern() = [{[headpat()](#type-headpat), Guards, Prod}]`
+<tt>sel_pattern() = [{<a href="#type-headpat">headpat()</a>, Guards, Prod}]</tt>
 <a name="type-sel_type"></a>
 <a name="type-sel_type"></a>
 
 
 
 
-###sel_type()##
+<h3 class="typedecl">sel_type()</h3>
 
 
-`sel_type() = n | p | c | a | names | props | counters | aggr_counters`
+<tt>sel_type() = n | p | c | a | names | props | counters | aggr_counters</tt>
 <a name="type-type"></a>
 <a name="type-type"></a>
 
 
 
 
-###type()##
+<h3 class="typedecl">type()</h3>
+
+<tt>type() = n | p | c | a</tt>
 
 
-`type() = n | p | c | a`
 n = name; p = property; c = counter;
 n = name; p = property; c = counter;
-                                 a = aggregate_counter
+a = aggregate_counter
+
+<h2><a name="index">Function Index</a></h2>
+
 
 
-##<a name="index">Function Index</a>##
 
 
 <table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#add_global_aggr_counter-1">add_global_aggr_counter/1</a></td><td>Registers a global (unique) aggregated counter.</td></tr><tr><td valign="top"><a href="#add_global_counter-2">add_global_counter/2</a></td><td>Registers a global (non-unique) counter.</td></tr><tr><td valign="top"><a href="#add_global_name-1">add_global_name/1</a></td><td>Registers a global (unique) name.</td></tr><tr><td valign="top"><a href="#add_global_property-2">add_global_property/2</a></td><td>Registers a global (non-unique) property.</td></tr><tr><td valign="top"><a href="#add_local_aggr_counter-1">add_local_aggr_counter/1</a></td><td>Registers a local (unique) aggregated counter.</td></tr><tr><td valign="top"><a href="#add_local_counter-2">add_local_counter/2</a></td><td>Registers a local (non-unique) counter.</td></tr><tr><td valign="top"><a href="#add_local_name-1">add_local_name/1</a></td><td>Registers a local (unique) name.</td></tr><tr><td valign="top"><a href="#add_local_property-2">add_local_property/2</a></td><td>Registers a local (non-unique) property.</td></tr><tr><td valign="top"><a href="#audit_process-1">audit_process/1</a></td><td></td></tr><tr><td valign="top"><a href="#await-1">await/1</a></td><td>Equivalent to <a href="#await-2"><tt>await(Key, infinity)</tt></a>.</td></tr><tr><td valign="top"><a href="#await-2">await/2</a></td><td>Wait for a local name to be registered.</td></tr><tr><td valign="top"><a href="#cancel_wait-2">cancel_wait/2</a></td><td></td></tr><tr><td valign="top"><a href="#default-1">default/1</a></td><td></td></tr><tr><td valign="top"><a href="#first-1">first/1</a></td><td>Behaves as ets:first(Tab) for a given type of registration object.</td></tr><tr><td valign="top"><a href="#get_value-1">get_value/1</a></td><td>Read the value stored with a key registered to the current process.</td></tr><tr><td valign="top"><a href="#info-1">info/1</a></td><td>Similar to <code>process_info(Pid)</code> but with additional gproc info.</td></tr><tr><td valign="top"><a href="#info-2">info/2</a></td><td>Similar to process_info(Pid, Item), but with additional gproc info.</td></tr><tr><td valign="top"><a href="#last-1">last/1</a></td><td>Behaves as ets:last(Tab) for a given type of registration object.</td></tr><tr><td valign="top"><a href="#lookup_global_aggr_counter-1">lookup_global_aggr_counter/1</a></td><td>Lookup a global (unique) aggregated counter and returns its value.</td></tr><tr><td valign="top"><a href="#lookup_global_counters-1">lookup_global_counters/1</a></td><td>Look up all global (non-unique) instances of a given Counter.</td></tr><tr><td valign="top"><a href="#lookup_global_name-1">lookup_global_name/1</a></td><td>Lookup a global unique name.</td></tr><tr><td valign="top"><a href="#lookup_global_properties-1">lookup_global_properties/1</a></td><td>Look up all global (non-unique) instances of a given Property.</td></tr><tr><td valign="top"><a href="#lookup_local_aggr_counter-1">lookup_local_aggr_counter/1</a></td><td>Lookup a local (unique) aggregated counter and returns its value.</td></tr><tr><td valign="top"><a href="#lookup_local_counters-1">lookup_local_counters/1</a></td><td>Look up all local (non-unique) instances of a given Counter.</td></tr><tr><td valign="top"><a href="#lookup_local_name-1">lookup_local_name/1</a></td><td>Lookup a local unique name.</td></tr><tr><td valign="top"><a href="#lookup_local_properties-1">lookup_local_properties/1</a></td><td>Look up all local (non-unique) instances of a given Property.</td></tr><tr><td valign="top"><a href="#lookup_pid-1">lookup_pid/1</a></td><td>Lookup the Pid stored with a key.</td></tr><tr><td valign="top"><a href="#lookup_pids-1">lookup_pids/1</a></td><td>Returns a list of pids with the published key Key.</td></tr><tr><td valign="top"><a href="#lookup_values-1">lookup_values/1</a></td><td>Retrieve the <code>{Pid,Value}</code> pairs corresponding to Key.</td></tr><tr><td valign="top"><a href="#mreg-3">mreg/3</a></td><td>Register multiple {Key,Value} pairs of a given type and scope.</td></tr><tr><td valign="top"><a href="#nb_wait-1">nb_wait/1</a></td><td>Wait for a local name to be registered.</td></tr><tr><td valign="top"><a href="#next-2">next/2</a></td><td>Behaves as ets:next(Tab,Key) for a given type of registration object.</td></tr><tr><td valign="top"><a href="#prev-2">prev/2</a></td><td>Behaves as ets:prev(Tab,Key) for a given type of registration object.</td></tr><tr><td valign="top"><a href="#reg-1">reg/1</a></td><td>Equivalent to <a href="#reg-2"><tt>reg(Key, default(Key))</tt></a>.</td></tr><tr><td valign="top"><a href="#reg-2">reg/2</a></td><td>Register a name or property for the current process.</td></tr><tr><td valign="top"><a href="#select-1">select/1</a></td><td>Equivalent to <a href="#select-2"><tt>select(all, Pat)</tt></a>.</td></tr><tr><td valign="top"><a href="#select-2">select/2</a></td><td>Perform a select operation on the process registry.</td></tr><tr><td valign="top"><a href="#select-3">select/3</a></td><td>Like <a href="#select-2"><code>select/2</code></a> but returns Limit objects at a time.</td></tr><tr><td valign="top"><a href="#send-2">send/2</a></td><td>Sends a message to the process, or processes, corresponding to Key.</td></tr><tr><td valign="top"><a href="#set_value-2">set_value/2</a></td><td>Sets the value of the registeration entry given by Key.</td></tr><tr><td valign="top"><a href="#start_link-0">start_link/0</a></td><td>Starts the gproc server.</td></tr><tr><td valign="top"><a href="#table-1">table/1</a></td><td>Equivalent to <a href="#table-2"><tt>table(Context, [])</tt></a>.</td></tr><tr><td valign="top"><a href="#table-2">table/2</a></td><td>QLC table generator for the gproc registry.</td></tr><tr><td valign="top"><a href="#unreg-1">unreg/1</a></td><td>Unregister a name or property.</td></tr><tr><td valign="top"><a href="#update_counter-2">update_counter/2</a></td><td>Updates the counter registered as Key for the current process.</td></tr><tr><td valign="top"><a href="#where-1">where/1</a></td><td>Returns the pid registered as Key.</td></tr></table>
 <table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#add_global_aggr_counter-1">add_global_aggr_counter/1</a></td><td>Registers a global (unique) aggregated counter.</td></tr><tr><td valign="top"><a href="#add_global_counter-2">add_global_counter/2</a></td><td>Registers a global (non-unique) counter.</td></tr><tr><td valign="top"><a href="#add_global_name-1">add_global_name/1</a></td><td>Registers a global (unique) name.</td></tr><tr><td valign="top"><a href="#add_global_property-2">add_global_property/2</a></td><td>Registers a global (non-unique) property.</td></tr><tr><td valign="top"><a href="#add_local_aggr_counter-1">add_local_aggr_counter/1</a></td><td>Registers a local (unique) aggregated counter.</td></tr><tr><td valign="top"><a href="#add_local_counter-2">add_local_counter/2</a></td><td>Registers a local (non-unique) counter.</td></tr><tr><td valign="top"><a href="#add_local_name-1">add_local_name/1</a></td><td>Registers a local (unique) name.</td></tr><tr><td valign="top"><a href="#add_local_property-2">add_local_property/2</a></td><td>Registers a local (non-unique) property.</td></tr><tr><td valign="top"><a href="#audit_process-1">audit_process/1</a></td><td></td></tr><tr><td valign="top"><a href="#await-1">await/1</a></td><td>Equivalent to <a href="#await-2"><tt>await(Key, infinity)</tt></a>.</td></tr><tr><td valign="top"><a href="#await-2">await/2</a></td><td>Wait for a local name to be registered.</td></tr><tr><td valign="top"><a href="#cancel_wait-2">cancel_wait/2</a></td><td></td></tr><tr><td valign="top"><a href="#default-1">default/1</a></td><td></td></tr><tr><td valign="top"><a href="#first-1">first/1</a></td><td>Behaves as ets:first(Tab) for a given type of registration object.</td></tr><tr><td valign="top"><a href="#get_value-1">get_value/1</a></td><td>Read the value stored with a key registered to the current process.</td></tr><tr><td valign="top"><a href="#info-1">info/1</a></td><td>Similar to <code>process_info(Pid)</code> but with additional gproc info.</td></tr><tr><td valign="top"><a href="#info-2">info/2</a></td><td>Similar to process_info(Pid, Item), but with additional gproc info.</td></tr><tr><td valign="top"><a href="#last-1">last/1</a></td><td>Behaves as ets:last(Tab) for a given type of registration object.</td></tr><tr><td valign="top"><a href="#lookup_global_aggr_counter-1">lookup_global_aggr_counter/1</a></td><td>Lookup a global (unique) aggregated counter and returns its value.</td></tr><tr><td valign="top"><a href="#lookup_global_counters-1">lookup_global_counters/1</a></td><td>Look up all global (non-unique) instances of a given Counter.</td></tr><tr><td valign="top"><a href="#lookup_global_name-1">lookup_global_name/1</a></td><td>Lookup a global unique name.</td></tr><tr><td valign="top"><a href="#lookup_global_properties-1">lookup_global_properties/1</a></td><td>Look up all global (non-unique) instances of a given Property.</td></tr><tr><td valign="top"><a href="#lookup_local_aggr_counter-1">lookup_local_aggr_counter/1</a></td><td>Lookup a local (unique) aggregated counter and returns its value.</td></tr><tr><td valign="top"><a href="#lookup_local_counters-1">lookup_local_counters/1</a></td><td>Look up all local (non-unique) instances of a given Counter.</td></tr><tr><td valign="top"><a href="#lookup_local_name-1">lookup_local_name/1</a></td><td>Lookup a local unique name.</td></tr><tr><td valign="top"><a href="#lookup_local_properties-1">lookup_local_properties/1</a></td><td>Look up all local (non-unique) instances of a given Property.</td></tr><tr><td valign="top"><a href="#lookup_pid-1">lookup_pid/1</a></td><td>Lookup the Pid stored with a key.</td></tr><tr><td valign="top"><a href="#lookup_pids-1">lookup_pids/1</a></td><td>Returns a list of pids with the published key Key.</td></tr><tr><td valign="top"><a href="#lookup_values-1">lookup_values/1</a></td><td>Retrieve the <code>{Pid,Value}</code> pairs corresponding to Key.</td></tr><tr><td valign="top"><a href="#mreg-3">mreg/3</a></td><td>Register multiple {Key,Value} pairs of a given type and scope.</td></tr><tr><td valign="top"><a href="#nb_wait-1">nb_wait/1</a></td><td>Wait for a local name to be registered.</td></tr><tr><td valign="top"><a href="#next-2">next/2</a></td><td>Behaves as ets:next(Tab,Key) for a given type of registration object.</td></tr><tr><td valign="top"><a href="#prev-2">prev/2</a></td><td>Behaves as ets:prev(Tab,Key) for a given type of registration object.</td></tr><tr><td valign="top"><a href="#reg-1">reg/1</a></td><td>Equivalent to <a href="#reg-2"><tt>reg(Key, default(Key))</tt></a>.</td></tr><tr><td valign="top"><a href="#reg-2">reg/2</a></td><td>Register a name or property for the current process.</td></tr><tr><td valign="top"><a href="#select-1">select/1</a></td><td>Equivalent to <a href="#select-2"><tt>select(all, Pat)</tt></a>.</td></tr><tr><td valign="top"><a href="#select-2">select/2</a></td><td>Perform a select operation on the process registry.</td></tr><tr><td valign="top"><a href="#select-3">select/3</a></td><td>Like <a href="#select-2"><code>select/2</code></a> but returns Limit objects at a time.</td></tr><tr><td valign="top"><a href="#send-2">send/2</a></td><td>Sends a message to the process, or processes, corresponding to Key.</td></tr><tr><td valign="top"><a href="#set_value-2">set_value/2</a></td><td>Sets the value of the registeration entry given by Key.</td></tr><tr><td valign="top"><a href="#start_link-0">start_link/0</a></td><td>Starts the gproc server.</td></tr><tr><td valign="top"><a href="#table-1">table/1</a></td><td>Equivalent to <a href="#table-2"><tt>table(Context, [])</tt></a>.</td></tr><tr><td valign="top"><a href="#table-2">table/2</a></td><td>QLC table generator for the gproc registry.</td></tr><tr><td valign="top"><a href="#unreg-1">unreg/1</a></td><td>Unregister a name or property.</td></tr><tr><td valign="top"><a href="#update_counter-2">update_counter/2</a></td><td>Updates the counter registered as Key for the current process.</td></tr><tr><td valign="top"><a href="#where-1">where/1</a></td><td>Returns the pid registered as Key.</td></tr></table>
 
 
+
 <a name="functions"></a>
 <a name="functions"></a>
 
 
 
 
-##Function Details##
+<h2>Function Details</h2>
+
 
 
 <a name="add_global_aggr_counter-1"></a>
 <a name="add_global_aggr_counter-1"></a>
 
 
 
 
-###add_global_aggr_counter/1##
+<h3>add_global_aggr_counter/1</h3>
+
+
+
 
 
 
 
 `add_global_aggr_counter(Name) -> any()`
 `add_global_aggr_counter(Name) -> any()`
 
 
+
+
 Equivalent to [`reg({a, g, Name})`](#reg-1).
 Equivalent to [`reg({a, g, Name})`](#reg-1).
+
 Registers a global (unique) aggregated counter.
 Registers a global (unique) aggregated counter.
 <a name="add_global_counter-2"></a>
 <a name="add_global_counter-2"></a>
 
 
 
 
-###add_global_counter/2##
+<h3>add_global_counter/2</h3>
+
+
+
 
 
 
 
 `add_global_counter(Name, Initial) -> any()`
 `add_global_counter(Name, Initial) -> any()`
 
 
+
+
 Registers a global (non-unique) counter. @equiv reg({c,g,Name},Value)
 Registers a global (non-unique) counter. @equiv reg({c,g,Name},Value)
 <a name="add_global_name-1"></a>
 <a name="add_global_name-1"></a>
 
 
 
 
-###add_global_name/1##
+<h3>add_global_name/1</h3>
+
+
+
 
 
 
 
 `add_global_name(Name) -> any()`
 `add_global_name(Name) -> any()`
 
 
+
+
 Registers a global (unique) name. @equiv reg({n,g,Name})
 Registers a global (unique) name. @equiv reg({n,g,Name})
 <a name="add_global_property-2"></a>
 <a name="add_global_property-2"></a>
 
 
 
 
-###add_global_property/2##
+<h3>add_global_property/2</h3>
+
+
+
 
 
 
 
 `add_global_property(Name, Value) -> any()`
 `add_global_property(Name, Value) -> any()`
 
 
+
+
 Registers a global (non-unique) property. @equiv reg({p,g,Name},Value)
 Registers a global (non-unique) property. @equiv reg({p,g,Name},Value)
 <a name="add_local_aggr_counter-1"></a>
 <a name="add_local_aggr_counter-1"></a>
 
 
 
 
-###add_local_aggr_counter/1##
+<h3>add_local_aggr_counter/1</h3>
+
+
+
 
 
 
 
 `add_local_aggr_counter(Name) -> any()`
 `add_local_aggr_counter(Name) -> any()`
 
 
+
+
 Equivalent to [`reg({a, l, Name})`](#reg-1).
 Equivalent to [`reg({a, l, Name})`](#reg-1).
+
 Registers a local (unique) aggregated counter.
 Registers a local (unique) aggregated counter.
 <a name="add_local_counter-2"></a>
 <a name="add_local_counter-2"></a>
 
 
 
 
-###add_local_counter/2##
+<h3>add_local_counter/2</h3>
+
+
+
 
 
 
 
 `add_local_counter(Name, Initial) -> any()`
 `add_local_counter(Name, Initial) -> any()`
 
 
+
+
 Registers a local (non-unique) counter. @equiv reg({c,l,Name},Value)
 Registers a local (non-unique) counter. @equiv reg({c,l,Name},Value)
 <a name="add_local_name-1"></a>
 <a name="add_local_name-1"></a>
 
 
 
 
-###add_local_name/1##
+<h3>add_local_name/1</h3>
+
+
+
 
 
 
 
 `add_local_name(Name) -> any()`
 `add_local_name(Name) -> any()`
 
 
+
+
 Registers a local (unique) name. @equiv reg({n,l,Name})
 Registers a local (unique) name. @equiv reg({n,l,Name})
 <a name="add_local_property-2"></a>
 <a name="add_local_property-2"></a>
 
 
 
 
-###add_local_property/2##
+<h3>add_local_property/2</h3>
+
+
+
 
 
 
 
 `add_local_property(Name, Value) -> any()`
 `add_local_property(Name, Value) -> any()`
 
 
+
+
 Registers a local (non-unique) property. @equiv reg({p,l,Name},Value)
 Registers a local (non-unique) property. @equiv reg({p,l,Name},Value)
 <a name="audit_process-1"></a>
 <a name="audit_process-1"></a>
 
 
 
 
-###audit_process/1##
+<h3>audit_process/1</h3>
+
+
+
 
 
 
 
 `audit_process(Pid) -> any()`
 `audit_process(Pid) -> any()`
 
 
+
 <a name="await-1"></a>
 <a name="await-1"></a>
 
 
 
 
-###await/1##
+<h3>await/1</h3>
+
+
+
+
+
+<tt>await(Key::<a href="#type-key">key()</a>) -> {pid(), Value}</tt>
 
 
 
 
-`await(Key::[key()](#type-key)) -> {pid(), Value}`
 
 
 Equivalent to [`await(Key, infinity)`](#await-2).
 Equivalent to [`await(Key, infinity)`](#await-2).
 <a name="await-2"></a>
 <a name="await-2"></a>
 
 
 
 
-###await/2##
+<h3>await/2</h3>
+
+
+
+
+
+<tt>await(Key::<a href="#type-key">key()</a>, Timeout) -> {pid(), Value}</tt>* `Timeout = integer() | infinity`
 
 
 
 
-`await(Key::[key()](#type-key), Timeout) -> {pid(), Value}`* `Timeout = integer() | infinity`
 
 
 
 
 Wait for a local name to be registered.
 Wait for a local name to be registered.
-  The function raises an exception if the timeout expires. Timeout must be
-  either an interger > 0 or 'infinity'.
-  A small optimization: we first perform a lookup, to see if the name
-  is already registered. This way, the cost of the operation will be
-  roughly the same as of where/1 in the case where the name is already
-  registered (the difference: await/2 also returns the value).
+The function raises an exception if the timeout expires. Timeout must be
+either an interger > 0 or 'infinity'.
+A small optimization: we first perform a lookup, to see if the name
+is already registered. This way, the cost of the operation will be
+roughly the same as of where/1 in the case where the name is already
+registered (the difference: await/2 also returns the value).
 <a name="cancel_wait-2"></a>
 <a name="cancel_wait-2"></a>
 
 
 
 
-###cancel_wait/2##
+<h3>cancel_wait/2</h3>
+
+
+
 
 
 
 
 `cancel_wait(Key, Ref) -> any()`
 `cancel_wait(Key, Ref) -> any()`
 
 
+
 <a name="default-1"></a>
 <a name="default-1"></a>
 
 
 
 
-###default/1##
+<h3>default/1</h3>
+
+
+
 
 
 
 
 `default(X1) -> any()`
 `default(X1) -> any()`
 
 
+
 <a name="first-1"></a>
 <a name="first-1"></a>
 
 
 
 
-###first/1##
+<h3>first/1</h3>
+
+
+
+
+
+<tt>first(Type::<a href="#type-type">type()</a>) -> <a href="#type-key">key()</a> | '$end_of_table'</tt>
+
 
 
 
 
-`first(Type::[type()](#type-type)) -> [key()](#type-key) | '$end_of_table'`
 
 
 
 
 Behaves as ets:first(Tab) for a given type of registration object.
 Behaves as ets:first(Tab) for a given type of registration object.
- 
-  See [`http://www.erlang.org/doc/man/ets.html#first-1`](http://www.erlang.org/doc/man/ets.html#first-1).
-   The registry behaves as an ordered_set table.
+
+See [`http://www.erlang.org/doc/man/ets.html#first-1`](http://www.erlang.org/doc/man/ets.html#first-1).
+The registry behaves as an ordered_set table.
 <a name="get_value-1"></a>
 <a name="get_value-1"></a>
 
 
 
 
-###get_value/1##
+<h3>get_value/1</h3>
+
+
+
+
+
+<tt>get_value(Key) -> Value</tt>
+
 
 
 
 
-`get_value(Key) -> Value`
 
 
 
 
 Read the value stored with a key registered to the current process.
 Read the value stored with a key registered to the current process.
- 
-  If no such key is registered to the current process, this function exits.
+
+If no such key is registered to the current process, this function exits.
 <a name="info-1"></a>
 <a name="info-1"></a>
 
 
 
 
-###info/1##
+<h3>info/1</h3>
+
+
+
+
+
+<tt>info(Pid::pid()) -> ProcessInfo</tt>* `ProcessInfo = [{gproc, [{Key, Value}]} | ProcessInfo]`
+
 
 
 
 
-`info(Pid::pid()) -> ProcessInfo`* `ProcessInfo = [{gproc, [{Key, Value}]} | ProcessInfo]`
 
 
 
 
 
 
 Similar to `process_info(Pid)` but with additional gproc info.
 Similar to `process_info(Pid)` but with additional gproc info.
- 
-  Returns the same information as process_info(Pid), but with the
-  addition of a `gproc` information item, containing the `{Key,Value}`
-  pairs registered to the process.
+
+Returns the same information as process_info(Pid), but with the
+addition of a `gproc` information item, containing the `{Key,Value}`
+pairs registered to the process.
 <a name="info-2"></a>
 <a name="info-2"></a>
 
 
 
 
-###info/2##
+<h3>info/2</h3>
+
+
+
+
+
+<tt>info(Pid::pid(), Item::atom()) -> {Item, Info}</tt>
+
 
 
 
 
-`info(Pid::pid(), Item::atom()) -> {Item, Info}`
 
 
 
 
 Similar to process_info(Pid, Item), but with additional gproc info.
 Similar to process_info(Pid, Item), but with additional gproc info.
- 
-  For `Item = gproc`, this function returns a list of `{Key, Value}` pairs
-  registered to the process Pid. For other values of Item, it returns the
-  same as [`http://www.erlang.org/doc/man/erlang.html#process_info-2`](http://www.erlang.org/doc/man/erlang.html#process_info-2).
+
+For `Item = gproc`, this function returns a list of `{Key, Value}` pairs
+registered to the process Pid. For other values of Item, it returns the
+same as [`http://www.erlang.org/doc/man/erlang.html#process_info-2`](http://www.erlang.org/doc/man/erlang.html#process_info-2).
 <a name="last-1"></a>
 <a name="last-1"></a>
 
 
 
 
-###last/1##
+<h3>last/1</h3>
+
+
+
+
+
+<tt>last(Context::<a href="#type-context">context()</a>) -> <a href="#type-key">key()</a> | '$end_of_table'</tt>
+
 
 
 
 
-`last(Context::[context()](#type-context)) -> [key()](#type-key) | '$end_of_table'`
 
 
 
 
 Behaves as ets:last(Tab) for a given type of registration object.
 Behaves as ets:last(Tab) for a given type of registration object.
- 
-  See [`http://www.erlang.org/doc/man/ets.html#last-1`](http://www.erlang.org/doc/man/ets.html#last-1).
-  The registry behaves as an ordered_set table.
+
+See [`http://www.erlang.org/doc/man/ets.html#last-1`](http://www.erlang.org/doc/man/ets.html#last-1).
+The registry behaves as an ordered_set table.
 <a name="lookup_global_aggr_counter-1"></a>
 <a name="lookup_global_aggr_counter-1"></a>
 
 
 
 
-###lookup_global_aggr_counter/1##
+<h3>lookup_global_aggr_counter/1</h3>
+
+
+
+
+
+<tt>lookup_global_aggr_counter(Name::any()) -> integer()</tt>
 
 
 
 
-`lookup_global_aggr_counter(Name::any()) -> integer()`
 
 
 Equivalent to [`where({a, g, Name})`](#where-1).
 Equivalent to [`where({a, g, Name})`](#where-1).
+
 Lookup a global (unique) aggregated counter and returns its value.
 Lookup a global (unique) aggregated counter and returns its value.
-  Fails if there is no such object.
+Fails if there is no such object.
 <a name="lookup_global_counters-1"></a>
 <a name="lookup_global_counters-1"></a>
 
 
 
 
-###lookup_global_counters/1##
+<h3>lookup_global_counters/1</h3>
+
+
+
+
+
+<tt>lookup_global_counters(Counter::any()) -> [{pid(), Value::integer()}]</tt>
 
 
 
 
-`lookup_global_counters(Counter::any()) -> [{pid(), Value::integer()}]`
 
 
 Equivalent to [`lookup_values({c, g, Counter})`](#lookup_values-1).
 Equivalent to [`lookup_values({c, g, Counter})`](#lookup_values-1).
+
 Look up all global (non-unique) instances of a given Counter.
 Look up all global (non-unique) instances of a given Counter.
-  Returns a list of {Pid, Value} tuples for all matching objects.
+Returns a list of {Pid, Value} tuples for all matching objects.
 <a name="lookup_global_name-1"></a>
 <a name="lookup_global_name-1"></a>
 
 
 
 
-###lookup_global_name/1##
+<h3>lookup_global_name/1</h3>
+
+
+
+
+
+<tt>lookup_global_name(Name::any()) -> pid()</tt>
 
 
 
 
-`lookup_global_name(Name::any()) -> pid()`
 
 
 Equivalent to [`where({n, g, Name})`](#where-1).
 Equivalent to [`where({n, g, Name})`](#where-1).
+
 Lookup a global unique name. Fails if there is no such name.
 Lookup a global unique name. Fails if there is no such name.
 <a name="lookup_global_properties-1"></a>
 <a name="lookup_global_properties-1"></a>
 
 
 
 
-###lookup_global_properties/1##
+<h3>lookup_global_properties/1</h3>
+
+
+
+
+
+<tt>lookup_global_properties(Property::any()) -> [{pid(), Value}]</tt>
 
 
 
 
-`lookup_global_properties(Property::any()) -> [{pid(), Value}]`
 
 
 Equivalent to [`lookup_values({p, g, Property})`](#lookup_values-1).
 Equivalent to [`lookup_values({p, g, Property})`](#lookup_values-1).
+
 Look up all global (non-unique) instances of a given Property.
 Look up all global (non-unique) instances of a given Property.
-  Returns a list of {Pid, Value} tuples for all matching objects.
+Returns a list of {Pid, Value} tuples for all matching objects.
 <a name="lookup_local_aggr_counter-1"></a>
 <a name="lookup_local_aggr_counter-1"></a>
 
 
 
 
-###lookup_local_aggr_counter/1##
+<h3>lookup_local_aggr_counter/1</h3>
+
+
+
+
+
+<tt>lookup_local_aggr_counter(Name::any()) -> integer()</tt>
 
 
 
 
-`lookup_local_aggr_counter(Name::any()) -> integer()`
 
 
 Equivalent to [`where({a, l, Name})`](#where-1).
 Equivalent to [`where({a, l, Name})`](#where-1).
+
 Lookup a local (unique) aggregated counter and returns its value.
 Lookup a local (unique) aggregated counter and returns its value.
-  Fails if there is no such object.
+Fails if there is no such object.
 <a name="lookup_local_counters-1"></a>
 <a name="lookup_local_counters-1"></a>
 
 
 
 
-###lookup_local_counters/1##
+<h3>lookup_local_counters/1</h3>
+
+
+
+
+
+<tt>lookup_local_counters(Counter::any()) -> [{pid(), Value::integer()}]</tt>
 
 
 
 
-`lookup_local_counters(Counter::any()) -> [{pid(), Value::integer()}]`
 
 
 Equivalent to [`lookup_values({c, l, Counter})`](#lookup_values-1).
 Equivalent to [`lookup_values({c, l, Counter})`](#lookup_values-1).
+
 Look up all local (non-unique) instances of a given Counter.
 Look up all local (non-unique) instances of a given Counter.
-  Returns a list of {Pid, Value} tuples for all matching objects.
+Returns a list of {Pid, Value} tuples for all matching objects.
 <a name="lookup_local_name-1"></a>
 <a name="lookup_local_name-1"></a>
 
 
 
 
-###lookup_local_name/1##
+<h3>lookup_local_name/1</h3>
+
+
+
+
+
+<tt>lookup_local_name(Name::any()) -> pid()</tt>
 
 
 
 
-`lookup_local_name(Name::any()) -> pid()`
 
 
 Equivalent to [`where({n, l, Name})`](#where-1).
 Equivalent to [`where({n, l, Name})`](#where-1).
+
 Lookup a local unique name. Fails if there is no such name.
 Lookup a local unique name. Fails if there is no such name.
 <a name="lookup_local_properties-1"></a>
 <a name="lookup_local_properties-1"></a>
 
 
 
 
-###lookup_local_properties/1##
+<h3>lookup_local_properties/1</h3>
+
+
+
+
+
+<tt>lookup_local_properties(Property::any()) -> [{pid(), Value}]</tt>
 
 
 
 
-`lookup_local_properties(Property::any()) -> [{pid(), Value}]`
 
 
 Equivalent to [`lookup_values({p, l, Property})`](#lookup_values-1).
 Equivalent to [`lookup_values({p, l, Property})`](#lookup_values-1).
+
 Look up all local (non-unique) instances of a given Property.
 Look up all local (non-unique) instances of a given Property.
-  Returns a list of {Pid, Value} tuples for all matching objects.
+Returns a list of {Pid, Value} tuples for all matching objects.
 <a name="lookup_pid-1"></a>
 <a name="lookup_pid-1"></a>
 
 
 
 
-###lookup_pid/1##
+<h3>lookup_pid/1</h3>
+
+
+
+
+
+<tt>lookup_pid(Key) -> Pid</tt>
 
 
 
 
-`lookup_pid(Key) -> Pid`
 
 
 Lookup the Pid stored with a key.
 Lookup the Pid stored with a key.
- 
+
 <a name="lookup_pids-1"></a>
 <a name="lookup_pids-1"></a>
 
 
 
 
-###lookup_pids/1##
+<h3>lookup_pids/1</h3>
+
+
+
+
+
+<tt>lookup_pids(Key::<a href="#type-key">key()</a>) -> [pid()]</tt>
+
 
 
 
 
-`lookup_pids(Key::[key()](#type-key)) -> [pid()]`
 
 
 
 
 Returns a list of pids with the published key Key
 Returns a list of pids with the published key Key
- 
-  If the type of registration entry is either name or aggregated counter,
-  this function will return either an empty list, or a list of one pid.
-  For non-unique types, the return value can be a list of any length.
+
+If the type of registration entry is either name or aggregated counter,
+this function will return either an empty list, or a list of one pid.
+For non-unique types, the return value can be a list of any length.
 <a name="lookup_values-1"></a>
 <a name="lookup_values-1"></a>
 
 
 
 
-###lookup_values/1##
+<h3>lookup_values/1</h3>
+
+
+
+
+
+<tt>lookup_values(Key::<a href="#type-key">key()</a>) -> [{pid(), Value}]</tt>
+
 
 
 
 
-`lookup_values(Key::[key()](#type-key)) -> [{pid(), Value}]`
 
 
 
 
 Retrieve the `{Pid,Value}` pairs corresponding to Key.
 Retrieve the `{Pid,Value}` pairs corresponding to Key.
- 
-  Key refer to any type of registry object. If it refers to a unique
-  object, the list will be of length 0 or 1. If it refers to a non-unique
-  object, the return value can be a list of any length.
+
+Key refer to any type of registry object. If it refers to a unique
+object, the list will be of length 0 or 1. If it refers to a non-unique
+object, the return value can be a list of any length.
 <a name="mreg-3"></a>
 <a name="mreg-3"></a>
 
 
 
 
-###mreg/3##
+<h3>mreg/3</h3>
+
+
+
+
+
+<tt>mreg(T::<a href="#type-type">type()</a>, X2::<a href="#type-scope">scope()</a>, KVL::[{Key::any(), Value::any()}]) -> true</tt>
+
 
 
 
 
-`mreg(T::[type()](#type-type), X2::[scope()](#type-scope), KVL::[{Key::any(), Value::any()}]) -> true`
 
 
 
 
 Register multiple {Key,Value} pairs of a given type and scope.
 Register multiple {Key,Value} pairs of a given type and scope.
- 
-  This function is more efficient than calling [`reg/2`](#reg-2) repeatedly.
+
+This function is more efficient than calling [`reg/2`](#reg-2) repeatedly.
 <a name="nb_wait-1"></a>
 <a name="nb_wait-1"></a>
 
 
 
 
-###nb_wait/1##
+<h3>nb_wait/1</h3>
+
+
+
+
+
+<tt>nb_wait(Key::<a href="#type-key">key()</a>) -> Ref</tt>
 
 
 
 
-`nb_wait(Key::[key()](#type-key)) -> Ref`
 
 
 Wait for a local name to be registered.
 Wait for a local name to be registered.
-  The caller can expect to receive a message,
-  {gproc, Ref, registered, {Key, Pid, Value}}, once the name is registered.
+The caller can expect to receive a message,
+{gproc, Ref, registered, {Key, Pid, Value}}, once the name is registered.
 <a name="next-2"></a>
 <a name="next-2"></a>
 
 
 
 
-###next/2##
+<h3>next/2</h3>
+
+
+
+
+
+<tt>next(Context::<a href="#type-context">context()</a>, Key::<a href="#type-key">key()</a>) -> <a href="#type-key">key()</a> | '$end_of_table'</tt>
+
 
 
 
 
-`next(Context::[context()](#type-context), Key::[key()](#type-key)) -> [key()](#type-key) | '$end_of_table'`
 
 
 
 
 Behaves as ets:next(Tab,Key) for a given type of registration object.
 Behaves as ets:next(Tab,Key) for a given type of registration object.
- 
-  See [`http://www.erlang.org/doc/man/ets.html#next-2`](http://www.erlang.org/doc/man/ets.html#next-2).
-  The registry behaves as an ordered_set table.
+
+See [`http://www.erlang.org/doc/man/ets.html#next-2`](http://www.erlang.org/doc/man/ets.html#next-2).
+The registry behaves as an ordered_set table.
 <a name="prev-2"></a>
 <a name="prev-2"></a>
 
 
 
 
-###prev/2##
+<h3>prev/2</h3>
+
+
+
+
+
+<tt>prev(Context::<a href="#type-context">context()</a>, Key::<a href="#type-key">key()</a>) -> <a href="#type-key">key()</a> | '$end_of_table'</tt>
+
 
 
 
 
-`prev(Context::[context()](#type-context), Key::[key()](#type-key)) -> [key()](#type-key) | '$end_of_table'`
 
 
 
 
 Behaves as ets:prev(Tab,Key) for a given type of registration object.
 Behaves as ets:prev(Tab,Key) for a given type of registration object.
- 
-  See [`http://www.erlang.org/doc/man/ets.html#prev-2`](http://www.erlang.org/doc/man/ets.html#prev-2).
-  The registry behaves as an ordered_set table.
+
+See [`http://www.erlang.org/doc/man/ets.html#prev-2`](http://www.erlang.org/doc/man/ets.html#prev-2).
+The registry behaves as an ordered_set table.
 <a name="reg-1"></a>
 <a name="reg-1"></a>
 
 
 
 
-###reg/1##
+<h3>reg/1</h3>
+
+
+
+
+
+<tt>reg(Key::<a href="#type-key">key()</a>) -> true</tt>
 
 
 
 
-`reg(Key::[key()](#type-key)) -> true`
 
 
 Equivalent to [`reg(Key, default(Key))`](#reg-2).
 Equivalent to [`reg(Key, default(Key))`](#reg-2).
 <a name="reg-2"></a>
 <a name="reg-2"></a>
 
 
 
 
-###reg/2##
+<h3>reg/2</h3>
+
+
+
+
+
+<tt>reg(Key::<a href="#type-key">key()</a>, Value) -> true</tt>
+
 
 
 
 
-`reg(Key::[key()](#type-key), Value) -> true`
 
 
 
 
 Register a name or property for the current process
 Register a name or property for the current process
- 
- 
+
+
 <a name="select-1"></a>
 <a name="select-1"></a>
 
 
 
 
-###select/1##
+<h3>select/1</h3>
+
+
+
+
+
+<tt>select(Pat::<a href="#type-select_pattern">select_pattern()</a>) -> list(<a href="#type-sel_object">sel_object()</a>)</tt>
 
 
 
 
-`select(Pat::[select_pattern()](#type-select_pattern)) -> list([sel_object()](#type-sel_object))`
 
 
 Equivalent to [`select(all, Pat)`](#select-2).
 Equivalent to [`select(all, Pat)`](#select-2).
 <a name="select-2"></a>
 <a name="select-2"></a>
 
 
 
 
-###select/2##
+<h3>select/2</h3>
+
+
+
+
+
+<tt>select(Type::<a href="#type-sel_type">sel_type()</a>, Pat::<a href="#type-sel_pattern">sel_pattern()</a>) -> [{Key, Pid, Value}]</tt>
+
 
 
 
 
-`select(Type::[sel_type()](#type-sel_type), Pat::[sel_pattern()](#type-sel_pattern)) -> [{Key, Pid, Value}]`
 
 
 
 
 Perform a select operation on the process registry.
 Perform a select operation on the process registry.
- 
-  The physical representation in the registry may differ from the above,
-  but the select patterns are transformed appropriately.
+
+The physical representation in the registry may differ from the above,
+but the select patterns are transformed appropriately.
 <a name="select-3"></a>
 <a name="select-3"></a>
 
 
 
 
-###select/3##
+<h3>select/3</h3>
+
+
+
+
+
+<tt>select(Type::<a href="#type-sel_type">sel_type()</a>, Pat::<a href="#type-sel_patten">sel_patten()</a>, Limit::integer()) -> [{Key, Pid, Value}]</tt>
+
 
 
 
 
-`select(Type::[sel_type()](#type-sel_type), Pat::[sel_patten()](#type-sel_patten), Limit::integer()) -> [{Key, Pid, Value}]`
 
 
 
 
 Like [`select/2`](#select-2) but returns Limit objects at a time.
 Like [`select/2`](#select-2) but returns Limit objects at a time.
- 
-  See [`http://www.erlang.org/doc/man/ets.html#select-3`](http://www.erlang.org/doc/man/ets.html#select-3).
+
+See [`http://www.erlang.org/doc/man/ets.html#select-3`](http://www.erlang.org/doc/man/ets.html#select-3).
 <a name="send-2"></a>
 <a name="send-2"></a>
 
 
 
 
-###send/2##
+<h3>send/2</h3>
+
+
+
+
+
+<tt>send(Key::<a href="#type-key">key()</a>, Msg::any()) -> Msg</tt>
+
 
 
 
 
-`send(Key::[key()](#type-key), Msg::any()) -> Msg`
 
 
 
 
 Sends a message to the process, or processes, corresponding to Key.
 Sends a message to the process, or processes, corresponding to Key.
- 
-  If Key belongs to a unique object (name or aggregated counter), this
-  function will send a message to the corresponding process, or fail if there
-  is no such process. If Key is for a non-unique object type (counter or
-  property), Msg will be send to all processes that have such an object.
+
+If Key belongs to a unique object (name or aggregated counter), this
+function will send a message to the corresponding process, or fail if there
+is no such process. If Key is for a non-unique object type (counter or
+property), Msg will be send to all processes that have such an object.
 <a name="set_value-2"></a>
 <a name="set_value-2"></a>
 
 
 
 
-###set_value/2##
+<h3>set_value/2</h3>
+
+
+
+
+
+<tt>set_value(Key::<a href="#type-key">key()</a>, Value) -> true</tt>
+
 
 
 
 
-`set_value(Key::[key()](#type-key), Value) -> true`
 
 
 
 
 Sets the value of the registeration entry given by Key
 Sets the value of the registeration entry given by Key
- 
-  
+
+
+
 Key is assumed to exist and belong to the calling process.  
 Key is assumed to exist and belong to the calling process.  
 If it doesn't, this function will exit.
 If it doesn't, this function will exit.
- 
-  Value can be any term, unless the object is a counter, in which case
-  it must be an integer.
+
+Value can be any term, unless the object is a counter, in which case
+it must be an integer.
 <a name="start_link-0"></a>
 <a name="start_link-0"></a>
 
 
 
 
-###start_link/0##
+<h3>start_link/0</h3>
+
+
+
+
+
+<tt>start_link() -> {ok, pid()}</tt>
+
 
 
 
 
-`start_link() -> {ok, pid()}`
 
 
 
 
 Starts the gproc server.
 Starts the gproc server.
- 
-  This function is intended to be called from gproc_sup, as part of
-  starting the gproc application.
+
+This function is intended to be called from gproc_sup, as part of
+starting the gproc application.
 <a name="table-1"></a>
 <a name="table-1"></a>
 
 
 
 
-###table/1##
+<h3>table/1</h3>
+
+
+
+
+
+<tt>table(Context::<a href="#type-context">context()</a>) -> any()</tt>
 
 
 
 
-`table(Context::[context()](#type-context)) -> any()`
 
 
 Equivalent to [`table(Context, [])`](#table-2).
 Equivalent to [`table(Context, [])`](#table-2).
 <a name="table-2"></a>
 <a name="table-2"></a>
 
 
 
 
-###table/2##
+<h3>table/2</h3>
+
+
+
+
+
+<tt>table(Context::<a href="#type-context">context()</a>, Opts) -> any()</tt>
 
 
 
 
-`table(Context::[context()](#type-context), Opts) -> any()`
 
 
 QLC table generator for the gproc registry.
 QLC table generator for the gproc registry.
-  Context specifies which subset of the registry should be queried.
-  See [`http://www.erlang.org/doc/man/qlc.html`](http://www.erlang.org/doc/man/qlc.html).
+Context specifies which subset of the registry should be queried.
+See [`http://www.erlang.org/doc/man/qlc.html`](http://www.erlang.org/doc/man/qlc.html).
 <a name="unreg-1"></a>
 <a name="unreg-1"></a>
 
 
 
 
-###unreg/1##
+<h3>unreg/1</h3>
+
+
+
+
+
+<tt>unreg(Key::<a href="#type-key">key()</a>) -> true</tt>
 
 
 
 
-`unreg(Key::[key()](#type-key)) -> true`
 
 
 Unregister a name or property.
 Unregister a name or property.
 <a name="update_counter-2"></a>
 <a name="update_counter-2"></a>
 
 
 
 
-###update_counter/2##
+<h3>update_counter/2</h3>
+
+
+
+
+
+<tt>update_counter(Key::<a href="#type-key">key()</a>, Incr::integer()) -> integer()</tt>
+
 
 
 
 
-`update_counter(Key::[key()](#type-key), Incr::integer()) -> integer()`
 
 
 
 
 Updates the counter registered as Key for the current process.
 Updates the counter registered as Key for the current process.
- 
-  This function works like ets:update_counter/3
-  (see [`http://www.erlang.org/doc/man/ets.html#update_counter-3`](http://www.erlang.org/doc/man/ets.html#update_counter-3)), but
-  will fail if the type of object referred to by Key is not a counter.
+
+This function works like ets:update_counter/3
+(see [`http://www.erlang.org/doc/man/ets.html#update_counter-3`](http://www.erlang.org/doc/man/ets.html#update_counter-3)), but
+will fail if the type of object referred to by Key is not a counter.
 <a name="where-1"></a>
 <a name="where-1"></a>
 
 
 
 
-###where/1##
+<h3>where/1</h3>
+
+
+
+
+
+<tt>where(Key::<a href="#type-key">key()</a>) -> pid()</tt>
+
 
 
 
 
-`where(Key::[key()](#type-key)) -> pid()`
 
 
 
 
 Returns the pid registered as Key
 Returns the pid registered as Key
- 
-  The type of registration entry must be either name or aggregated counter.
-  Otherwise this function will exit. Use [`lookup_pids/1`](#lookup_pids-1) in these
-  cases.
-_Generated by EDoc, Oct 23 2010, 20:54:23._
+
+The type of registration entry must be either name or aggregated counter.
+Otherwise this function will exit. Use [`lookup_pids/1`](#lookup_pids-1) in these
+cases.
+
+_Generated by EDoc, Oct 31 2010, 18:30:39._

+ 28 - 7
doc/gproc_app.md

@@ -2,43 +2,64 @@ Module gproc_app
 ================
 ================
 
 
 
 
-#Module gproc_app#
+<h1>Module gproc_app</h1>
+
 * [Function Index](#index)
 * [Function Index](#index)
 * [Function Details](#functions)
 * [Function Details](#functions)
 
 
+
+
+
 __Behaviours:__ [`application`](application.html).
 __Behaviours:__ [`application`](application.html).
 
 
-##<a name="index">Function Index</a>##
+<h2><a name="index">Function Index</a></h2>
+
+
 
 
 <table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#start-0">start/0</a></td><td></td></tr><tr><td valign="top"><a href="#start-2">start/2</a></td><td></td></tr><tr><td valign="top"><a href="#stop-1">stop/1</a></td><td></td></tr></table>
 <table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#start-0">start/0</a></td><td></td></tr><tr><td valign="top"><a href="#start-2">start/2</a></td><td></td></tr><tr><td valign="top"><a href="#stop-1">stop/1</a></td><td></td></tr></table>
 
 
+
 <a name="functions"></a>
 <a name="functions"></a>
 
 
 
 
-##Function Details##
+<h2>Function Details</h2>
+
 
 
 <a name="start-0"></a>
 <a name="start-0"></a>
 
 
 
 
-###start/0##
+<h3>start/0</h3>
+
+
+
 
 
 
 
 `start() -> any()`
 `start() -> any()`
 
 
+
 <a name="start-2"></a>
 <a name="start-2"></a>
 
 
 
 
-###start/2##
+<h3>start/2</h3>
+
+
+
 
 
 
 
 `start(Type, StartArgs) -> any()`
 `start(Type, StartArgs) -> any()`
 
 
+
 <a name="stop-1"></a>
 <a name="stop-1"></a>
 
 
 
 
-###stop/1##
+<h3>stop/1</h3>
+
+
+
 
 
 
 
 `stop(State) -> any()`
 `stop(State) -> any()`
 
 
-_Generated by EDoc, Oct 23 2010, 20:54:23._
+
+
+_Generated by EDoc, Oct 31 2010, 18:30:39._

+ 147 - 42
doc/gproc_dist.md

@@ -2,224 +2,329 @@ Module gproc_dist
 =================
 =================
 
 
 
 
-#Module gproc_dist#
+<h1>Module gproc_dist</h1>
+
 * [Description](#description)
 * [Description](#description)
 * [Function Index](#index)
 * [Function Index](#index)
 * [Function Details](#functions)
 * [Function Details](#functions)
 Extended process registry.
 Extended process registry.
+
+
+
 __Behaviours:__ [`gen_leader`](gen_leader.html).
 __Behaviours:__ [`gen_leader`](gen_leader.html).
+
 __Authors:__ Ulf Wiger ([`ulf.wiger@ericsson.com`](mailto:ulf.wiger@ericsson.com)).
 __Authors:__ Ulf Wiger ([`ulf.wiger@ericsson.com`](mailto:ulf.wiger@ericsson.com)).
 
 
-##<a name="description">Description</a>##
-Extended process registry
-  
+<h2><a name="description">Description</a></h2>
+
+
+
 This module implements an extended process registry
 This module implements an extended process registry
-  
+
+
 For a detailed description, see gproc/doc/erlang07-wiger.pdf.
 For a detailed description, see gproc/doc/erlang07-wiger.pdf.
 
 
-##<a name="index">Function Index</a>##
+<h2><a name="index">Function Index</a></h2>
+
+
 
 
 <table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#code_change-4">code_change/4</a></td><td></td></tr><tr><td valign="top"><a href="#elected-2">elected/2</a></td><td></td></tr><tr><td valign="top"><a href="#elected-3">elected/3</a></td><td></td></tr><tr><td valign="top"><a href="#from_leader-3">from_leader/3</a></td><td></td></tr><tr><td valign="top"><a href="#handle_DOWN-3">handle_DOWN/3</a></td><td></td></tr><tr><td valign="top"><a href="#handle_call-4">handle_call/4</a></td><td></td></tr><tr><td valign="top"><a href="#handle_cast-3">handle_cast/3</a></td><td></td></tr><tr><td valign="top"><a href="#handle_info-2">handle_info/2</a></td><td></td></tr><tr><td valign="top"><a href="#handle_leader_call-4">handle_leader_call/4</a></td><td></td></tr><tr><td valign="top"><a href="#handle_leader_cast-3">handle_leader_cast/3</a></td><td></td></tr><tr><td valign="top"><a href="#init-1">init/1</a></td><td></td></tr><tr><td valign="top"><a href="#leader_call-1">leader_call/1</a></td><td></td></tr><tr><td valign="top"><a href="#leader_cast-1">leader_cast/1</a></td><td></td></tr><tr><td valign="top"><a href="#mreg-2">mreg/2</a></td><td></td></tr><tr><td valign="top"><a href="#reg-1">reg/1</a></td><td></td></tr><tr><td valign="top"><a href="#reg-2">reg/2</a></td><td>
 <table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#code_change-4">code_change/4</a></td><td></td></tr><tr><td valign="top"><a href="#elected-2">elected/2</a></td><td></td></tr><tr><td valign="top"><a href="#elected-3">elected/3</a></td><td></td></tr><tr><td valign="top"><a href="#from_leader-3">from_leader/3</a></td><td></td></tr><tr><td valign="top"><a href="#handle_DOWN-3">handle_DOWN/3</a></td><td></td></tr><tr><td valign="top"><a href="#handle_call-4">handle_call/4</a></td><td></td></tr><tr><td valign="top"><a href="#handle_cast-3">handle_cast/3</a></td><td></td></tr><tr><td valign="top"><a href="#handle_info-2">handle_info/2</a></td><td></td></tr><tr><td valign="top"><a href="#handle_leader_call-4">handle_leader_call/4</a></td><td></td></tr><tr><td valign="top"><a href="#handle_leader_cast-3">handle_leader_cast/3</a></td><td></td></tr><tr><td valign="top"><a href="#init-1">init/1</a></td><td></td></tr><tr><td valign="top"><a href="#leader_call-1">leader_call/1</a></td><td></td></tr><tr><td valign="top"><a href="#leader_cast-1">leader_cast/1</a></td><td></td></tr><tr><td valign="top"><a href="#mreg-2">mreg/2</a></td><td></td></tr><tr><td valign="top"><a href="#reg-1">reg/1</a></td><td></td></tr><tr><td valign="top"><a href="#reg-2">reg/2</a></td><td>
-      Class = n  - unique name
-            | p  - non-unique property
-            | c  - counter
-            | a  - aggregated counter
-      Scope = l | g (global or local).</td></tr><tr><td valign="top"><a href="#set_value-2">set_value/2</a></td><td></td></tr><tr><td valign="top"><a href="#start_link-0">start_link/0</a></td><td></td></tr><tr><td valign="top"><a href="#start_link-1">start_link/1</a></td><td></td></tr><tr><td valign="top"><a href="#surrendered-3">surrendered/3</a></td><td></td></tr><tr><td valign="top"><a href="#terminate-2">terminate/2</a></td><td></td></tr><tr><td valign="top"><a href="#unreg-1">unreg/1</a></td><td></td></tr><tr><td valign="top"><a href="#update_counter-2">update_counter/2</a></td><td></td></tr></table>
+Class = n  - unique name
+| p  - non-unique property
+| c  - counter
+| a  - aggregated counter
+Scope = l | g (global or local).</td></tr><tr><td valign="top"><a href="#set_value-2">set_value/2</a></td><td></td></tr><tr><td valign="top"><a href="#start_link-0">start_link/0</a></td><td></td></tr><tr><td valign="top"><a href="#start_link-1">start_link/1</a></td><td></td></tr><tr><td valign="top"><a href="#surrendered-3">surrendered/3</a></td><td></td></tr><tr><td valign="top"><a href="#terminate-2">terminate/2</a></td><td></td></tr><tr><td valign="top"><a href="#unreg-1">unreg/1</a></td><td></td></tr><tr><td valign="top"><a href="#update_counter-2">update_counter/2</a></td><td></td></tr></table>
+
 
 
 <a name="functions"></a>
 <a name="functions"></a>
 
 
 
 
-##Function Details##
+<h2>Function Details</h2>
+
 
 
 <a name="code_change-4"></a>
 <a name="code_change-4"></a>
 
 
 
 
-###code_change/4##
+<h3>code_change/4</h3>
+
+
+
 
 
 
 
 `code_change(FromVsn, S, Extra, E) -> any()`
 `code_change(FromVsn, S, Extra, E) -> any()`
 
 
+
 <a name="elected-2"></a>
 <a name="elected-2"></a>
 
 
 
 
-###elected/2##
+<h3>elected/2</h3>
+
+
+
 
 
 
 
 `elected(S, E) -> any()`
 `elected(S, E) -> any()`
 
 
+
 <a name="elected-3"></a>
 <a name="elected-3"></a>
 
 
 
 
-###elected/3##
+<h3>elected/3</h3>
+
+
+
 
 
 
 
 `elected(S, E, Node) -> any()`
 `elected(S, E, Node) -> any()`
 
 
+
 <a name="from_leader-3"></a>
 <a name="from_leader-3"></a>
 
 
 
 
-###from_leader/3##
+<h3>from_leader/3</h3>
+
+
+
 
 
 
 
 `from_leader(Ops, S, E) -> any()`
 `from_leader(Ops, S, E) -> any()`
 
 
+
 <a name="handle_DOWN-3"></a>
 <a name="handle_DOWN-3"></a>
 
 
 
 
-###handle_DOWN/3##
+<h3>handle_DOWN/3</h3>
+
+
+
 
 
 
 
 `handle_DOWN(Node, S, E) -> any()`
 `handle_DOWN(Node, S, E) -> any()`
 
 
+
 <a name="handle_call-4"></a>
 <a name="handle_call-4"></a>
 
 
 
 
-###handle_call/4##
+<h3>handle_call/4</h3>
+
+
+
 
 
 
 
 `handle_call(X1, X2, S, X4) -> any()`
 `handle_call(X1, X2, S, X4) -> any()`
 
 
+
 <a name="handle_cast-3"></a>
 <a name="handle_cast-3"></a>
 
 
 
 
-###handle_cast/3##
+<h3>handle_cast/3</h3>
+
+
+
 
 
 
 
 `handle_cast(Msg, S, X3) -> any()`
 `handle_cast(Msg, S, X3) -> any()`
 
 
+
 <a name="handle_info-2"></a>
 <a name="handle_info-2"></a>
 
 
 
 
-###handle_info/2##
+<h3>handle_info/2</h3>
+
+
+
 
 
 
 
 `handle_info(X1, S) -> any()`
 `handle_info(X1, S) -> any()`
 
 
+
 <a name="handle_leader_call-4"></a>
 <a name="handle_leader_call-4"></a>
 
 
 
 
-###handle_leader_call/4##
+<h3>handle_leader_call/4</h3>
+
+
+
 
 
 
 
 `handle_leader_call(X1, From, S, E) -> any()`
 `handle_leader_call(X1, From, S, E) -> any()`
 
 
+
 <a name="handle_leader_cast-3"></a>
 <a name="handle_leader_cast-3"></a>
 
 
 
 
-###handle_leader_cast/3##
+<h3>handle_leader_cast/3</h3>
+
+
+
 
 
 
 
 `handle_leader_cast(X1, S, E) -> any()`
 `handle_leader_cast(X1, S, E) -> any()`
 
 
+
 <a name="init-1"></a>
 <a name="init-1"></a>
 
 
 
 
-###init/1##
+<h3>init/1</h3>
+
+
+
 
 
 
 
 `init(Opts) -> any()`
 `init(Opts) -> any()`
 
 
+
 <a name="leader_call-1"></a>
 <a name="leader_call-1"></a>
 
 
 
 
-###leader_call/1##
+<h3>leader_call/1</h3>
+
+
+
 
 
 
 
 `leader_call(Req) -> any()`
 `leader_call(Req) -> any()`
 
 
+
 <a name="leader_cast-1"></a>
 <a name="leader_cast-1"></a>
 
 
 
 
-###leader_cast/1##
+<h3>leader_cast/1</h3>
+
+
+
 
 
 
 
 `leader_cast(Msg) -> any()`
 `leader_cast(Msg) -> any()`
 
 
+
 <a name="mreg-2"></a>
 <a name="mreg-2"></a>
 
 
 
 
-###mreg/2##
+<h3>mreg/2</h3>
+
+
+
 
 
 
 
 `mreg(T, KVL) -> any()`
 `mreg(T, KVL) -> any()`
 
 
+
 <a name="reg-1"></a>
 <a name="reg-1"></a>
 
 
 
 
-###reg/1##
+<h3>reg/1</h3>
+
+
+
 
 
 
 
 `reg(Key) -> any()`
 `reg(Key) -> any()`
 
 
+
 <a name="reg-2"></a>
 <a name="reg-2"></a>
 
 
 
 
-###reg/2##
+<h3>reg/2</h3>
+
+
+
 
 
 
 
 `reg(Key, Value) -> any()`
 `reg(Key, Value) -> any()`
 
 
 
 
-      Class = n  - unique name
-            | p  - non-unique property
-            | c  - counter
-            | a  - aggregated counter
-      Scope = l | g (global or local)
-  
+
+
+Class = n  - unique name
+| p  - non-unique property
+| c  - counter
+| a  - aggregated counter
+Scope = l | g (global or local)
+
 <a name="set_value-2"></a>
 <a name="set_value-2"></a>
 
 
 
 
-###set_value/2##
+<h3>set_value/2</h3>
+
+
+
 
 
 
 
 `set_value(Key, Value) -> any()`
 `set_value(Key, Value) -> any()`
 
 
+
 <a name="start_link-0"></a>
 <a name="start_link-0"></a>
 
 
 
 
-###start_link/0##
+<h3>start_link/0</h3>
+
+
+
 
 
 
 
 `start_link() -> any()`
 `start_link() -> any()`
 
 
+
 <a name="start_link-1"></a>
 <a name="start_link-1"></a>
 
 
 
 
-###start_link/1##
+<h3>start_link/1</h3>
+
+
+
 
 
 
 
 `start_link(Nodes) -> any()`
 `start_link(Nodes) -> any()`
 
 
+
 <a name="surrendered-3"></a>
 <a name="surrendered-3"></a>
 
 
 
 
-###surrendered/3##
+<h3>surrendered/3</h3>
+
+
+
 
 
 
 
 `surrendered(S, X2, E) -> any()`
 `surrendered(S, X2, E) -> any()`
 
 
+
 <a name="terminate-2"></a>
 <a name="terminate-2"></a>
 
 
 
 
-###terminate/2##
+<h3>terminate/2</h3>
+
+
+
 
 
 
 
 `terminate(Reason, S) -> any()`
 `terminate(Reason, S) -> any()`
 
 
+
 <a name="unreg-1"></a>
 <a name="unreg-1"></a>
 
 
 
 
-###unreg/1##
+<h3>unreg/1</h3>
+
+
+
 
 
 
 
 `unreg(Key) -> any()`
 `unreg(Key) -> any()`
 
 
+
 <a name="update_counter-2"></a>
 <a name="update_counter-2"></a>
 
 
 
 
-###update_counter/2##
+<h3>update_counter/2</h3>
+
+
+
 
 
 
 
 `update_counter(Key, Incr) -> any()`
 `update_counter(Key, Incr) -> any()`
 
 
-_Generated by EDoc, Oct 23 2010, 20:54:23._
+
+
+_Generated by EDoc, Oct 31 2010, 18:30:39._

+ 22 - 6
doc/gproc_init.md

@@ -2,34 +2,50 @@ Module gproc_init
 =================
 =================
 
 
 
 
-#Module gproc_init#
+<h1>Module gproc_init</h1>
+
 * [Function Index](#index)
 * [Function Index](#index)
 * [Function Details](#functions)
 * [Function Details](#functions)
 
 
 
 
-##<a name="index">Function Index</a>##
+
+
+<h2><a name="index">Function Index</a></h2>
+
+
 
 
 <table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#hard_reset-0">hard_reset/0</a></td><td></td></tr><tr><td valign="top"><a href="#soft_reset-0">soft_reset/0</a></td><td></td></tr></table>
 <table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#hard_reset-0">hard_reset/0</a></td><td></td></tr><tr><td valign="top"><a href="#soft_reset-0">soft_reset/0</a></td><td></td></tr></table>
 
 
+
 <a name="functions"></a>
 <a name="functions"></a>
 
 
 
 
-##Function Details##
+<h2>Function Details</h2>
+
 
 
 <a name="hard_reset-0"></a>
 <a name="hard_reset-0"></a>
 
 
 
 
-###hard_reset/0##
+<h3>hard_reset/0</h3>
+
+
+
 
 
 
 
 `hard_reset() -> any()`
 `hard_reset() -> any()`
 
 
+
 <a name="soft_reset-0"></a>
 <a name="soft_reset-0"></a>
 
 
 
 
-###soft_reset/0##
+<h3>soft_reset/0</h3>
+
+
+
 
 
 
 
 `soft_reset() -> any()`
 `soft_reset() -> any()`
 
 
-_Generated by EDoc, Oct 23 2010, 20:54:23._
+
+
+_Generated by EDoc, Oct 31 2010, 18:30:39._

+ 13 - 6
doc/gproc_lib.md

@@ -2,15 +2,22 @@ Module gproc_lib
 ================
 ================
 
 
 
 
-#Module gproc_lib#
+<h1>Module gproc_lib</h1>
+
 * [Description](#description)
 * [Description](#description)
 Extended process registry.
 Extended process registry.
+
+
+
 __Authors:__ Ulf Wiger ([`ulf.wiger@ericsson.com`](mailto:ulf.wiger@ericsson.com)).
 __Authors:__ Ulf Wiger ([`ulf.wiger@ericsson.com`](mailto:ulf.wiger@ericsson.com)).
 
 
-##<a name="description">Description</a>##
-Extended process registry
-  
+<h2><a name="description">Description</a></h2>
+
+
+
 This module implements an extended process registry
 This module implements an extended process registry
-  
+
+
 For a detailed description, see gproc/doc/erlang07-wiger.pdf.
 For a detailed description, see gproc/doc/erlang07-wiger.pdf.
-_Generated by EDoc, Oct 23 2010, 20:54:22._
+
+_Generated by EDoc, Oct 31 2010, 18:30:39._

+ 24 - 6
doc/gproc_sup.md

@@ -2,36 +2,54 @@ Module gproc_sup
 ================
 ================
 
 
 
 
-#Module gproc_sup#
+<h1>Module gproc_sup</h1>
+
 * [Function Index](#index)
 * [Function Index](#index)
 * [Function Details](#functions)
 * [Function Details](#functions)
 
 
+
+
+
 __Behaviours:__ [`supervisor`](supervisor.html).
 __Behaviours:__ [`supervisor`](supervisor.html).
 
 
-##<a name="index">Function Index</a>##
+<h2><a name="index">Function Index</a></h2>
+
+
 
 
 <table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#init-1">init/1</a></td><td>The main GPROC supervisor.</td></tr><tr><td valign="top"><a href="#start_link-1">start_link/1</a></td><td></td></tr></table>
 <table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#init-1">init/1</a></td><td>The main GPROC supervisor.</td></tr><tr><td valign="top"><a href="#start_link-1">start_link/1</a></td><td></td></tr></table>
 
 
+
 <a name="functions"></a>
 <a name="functions"></a>
 
 
 
 
-##Function Details##
+<h2>Function Details</h2>
+
 
 
 <a name="init-1"></a>
 <a name="init-1"></a>
 
 
 
 
-###init/1##
+<h3>init/1</h3>
+
+
+
 
 
 
 
 `init(Args) -> any()`
 `init(Args) -> any()`
 
 
+
+
 The main GPROC supervisor.
 The main GPROC supervisor.
 <a name="start_link-1"></a>
 <a name="start_link-1"></a>
 
 
 
 
-###start_link/1##
+<h3>start_link/1</h3>
+
+
+
 
 
 
 
 `start_link(Args) -> any()`
 `start_link(Args) -> any()`
 
 
-_Generated by EDoc, Oct 23 2010, 20:54:22._
+
+
+_Generated by EDoc, Oct 31 2010, 18:30:39._