autodoc.git
/
traditional_manual
/
chapter_21.html
version
»
Context lines:
10
20
40
80
file
none
3
autodoc.git/traditional_manual/chapter_21.html:15698:
Upon startup of the backend, it will change to <code class='expr'>true</code> unless you explicitly called <code>use_backend()</code> before that.</p> </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>(Un)setting this typically alters the order in which some callbacks are called (depending on what happens in a callback).</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Future()->set_backend()</code>, <code>Future()->call_callback()</code></p> </dd></dl>
-
<dl><dt><h2 class='header'>Class <b class='ms datatype'>Concurrent.
Future
</b></h2>
+
<dl><dt><h2 class='header'>Class <b class='ms datatype'>Concurrent.
AggregatedPromise
</b></h2>
</dt><dd><dl class='group--doc'> <dt class='head--doc'>Description</dt>
-
+
<dd class='body--doc'><p>Promise to provide an aggregated <code>Future</code> value.</p>
+
<p> Objects of this class are typically kept internal to the
+
code that provides the <code>Future</code> value. The only thing
+
that is directly returned to the user is the return
+
value from <code>future()</code>.</p>
+
</dd>
+
<dt class='head--doc'>Note</dt>
+
<dd class='body--doc'><p>It is currently possible to use this class as a normal <code>Promise</code>
+
(ie without aggregation), but those functions may get removed
+
in a future version of Pike. Functions to avoid include
+
<code>success()</code> and <code>try_success()</code>. If you do not need aggregation
+
use <code>Promise</code>.</p>
+
</dd>
+
<dt class='head--doc'>See also</dt>
+
<dd class='body--doc'><p><code>Future</code>, <code>future()</code>, <code>Promise</code>, <code>first_completed()</code>,
+
<code>race()</code>, <code>results()</code>, <code>all()</code>, <code>fold()</code></p>
+
</dd></dl>
+
+
<hr />
+
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>aggregate_cb</b></span>
+
</dt>
+
<dd><p><code><code class='modifier'>protected</code> <code class='datatype'>void</code> <b><span class='method'>aggregate_cb</span>(</b><code class='datatype'>mixed</code> <code class='argument'>value</code>, <code class='datatype'>int</code> <code class='argument'>idx</code>, <code class='datatype'>mapping</code>(<code class='datatype'>int</code>:<code class='datatype'>mixed</code>) <code class='argument'>results</code><b>)</b></code></p></dd>
+
+
<dt class='head--doc'>Description</dt>
+
<dd class='body--doc'><p>Callback used to aggregate the results from dependencies.</p>
+
</dd>
+
<dt class='head--doc'><span id='p-value'></span>Parameter <code class='parameter'>value</code></dt>
+
<dd></dd><dd class='body--doc'><p>Value received from the dependency.</p>
+
</dd>
+
<dt class='head--doc'><span id='p-idx'></span>Parameter <code class='parameter'>idx</code></dt>
+
<dd></dd><dd class='body--doc'><p>Identification number for the dependency.</p>
+
</dd>
+
<dt class='head--doc'><span id='p-results'></span>Parameter <code class='parameter'>results</code></dt>
+
<dd></dd><dd class='body--doc'><p>Either of the mappings in <code>dependency_results</code> depending on
+
whether this was a success or a failure callback.</p>
+
</dd>
+
<dt class='head--doc'>Note</dt>
+
<dd class='body--doc'><p>The function may also be called with all arguments set to
+
<code>UNDEFINED</code> in order to poll the current state. This is
+
typically done via a call to <code>start()</code>.</p>
+
</dd>
+
<dt class='head--doc'>See also</dt>
+
<dd class='body--doc'><p><code>start()</code></p>
+
</dd></dl>
+
+
+
<hr />
+
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>any_results</b></span>
+
</dt>
+
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>any_results</span>(</b><b>)</b></code></p></dd>
+
+
<dt class='head--doc'>Description</dt>
+
<dd class='body--doc'><p>Sets the number of failures to be accepted in the list of futures
+
this promise
+
depends upon to unlimited. It is equivalent to <code class='expr'>max_failures(-1)</code>.</p>
+
</dd>
+
<dt class='head--doc'>Returns</dt>
+
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
+
</dd>
+
<dt class='head--doc'>See also</dt>
+
<dd class='body--doc'><p><code>depend()</code>, <code>max_failures()</code></p>
+
</dd></dl>
+
+
+
<hr />
+
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>depend</b></span>
+
</dt>
+
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>depend</span>(</b><code class='datatype'>array</code>(<code class='object unresolved'>Future</code>) <code class='argument'>futures</code><b>)</b></code><br>
+
<code><code class='modifier'>local</code> <code class='modifier'>variant</code> <code class='object unresolved'>this_program</code> <b><span class='method'>depend</span>(</b><code class='object unresolved'>Future</code> ... <code class='argument'>futures</code><b>)</b></code><br>
+
<code><code class='modifier'>variant</code> <code class='object unresolved'>this_program</code> <b><span class='method'>depend</span>(</b><b>)</b></code></p></dd>
+
+
<dt class='head--doc'>Description</dt>
+
<dd class='body--doc'><p>Add futures to the list of futures which the current object depends upon.</p>
+
<p> If called without arguments it will produce a new <code>Future</code>
+
from a new <code>Promise</code> which is implictly added to the dependency list.</p>
+
</dd>
+
<dt class='head--doc'><span id='p-futures'></span>Parameter <code class='parameter'>futures</code></dt>
+
<dd></dd><dd class='body--doc'><p>The list of <code class='expr'>futures</code> we want to add to the list we depend upon.</p>
+
</dd>
+
<dt class='head--doc'>Returns</dt>
+
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
+
</dd>
+
<dt class='head--doc'>Note</dt>
+
<dd class='body--doc'><p>Can be called multiple times to add more.</p>
+
</dd>
+
<dt class='head--doc'>Note</dt>
+
<dd class='body--doc'><p>Once the promise has been materialised (when either <code>on_success()</code>,
+
<code>on_failure()</code> or <code>get()</code> has been called on this object), it is
+
not possible to call <code>depend()</code> anymore.</p>
+
</dd>
+
<dt class='head--doc'>See also</dt>
+
<dd class='body--doc'><p><code>fold()</code>, <code>first_completed()</code>, <code>max_failures()</code>, <code>min_failures()</code>,
+
<code>any_results()</code>, <code>Concurrent.results()</code>, <code>Concurrent.all()</code></p>
+
</dd></dl>
+
+
+
<hr />
+
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Variable</span>
+
<span class='homogen--name'><b>dependency_results</b></span>
+
</dt>
+
<dd><p><code><code class='modifier'>protected</code> <code class='datatype'>array</code>(<code class='datatype'>mapping</code>(<code class='datatype'>int</code>:<code class='datatype'>mixed</code>)) Concurrent.AggregatedPromise.<b><span class='variable'>dependency_results</span></b></code></p></dd>
+
+
<dt class='head--doc'>Description</dt>
+
<dd class='body--doc'><table class='box'><tr><td colspan='2'>Array</td></tr>
+
<tr><td><code><code class='datatype'>mapping</code>(<code class='datatype'>int</code>:<code class='datatype'>mixed</code>) <code class='key'>0</code></code></td><td><p>Successful results.</p>
+
</td></tr>
+
<tr><td><code><code class='datatype'>mapping</code>(<code class='datatype'>int</code>:<code class='datatype'>mixed</code>) <code class='key'>1</code></code></td><td><p>Failed results.</p>
+
</td></tr>
+
</table>
+
</dd></dl>
+
+
+
<hr />
+
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>first_completed</b></span>
+
</dt>
+
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>first_completed</span>(</b><b>)</b></code></p></dd>
+
+
<dt class='head--doc'>Description</dt>
+
<dd class='body--doc'><p>It evaluates to the first future that completes of the list
+
of futures it depends upon.</p>
+
</dd>
+
<dt class='head--doc'>Returns</dt>
+
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
+
</dd>
+
<dt class='head--doc'>See also</dt>
+
<dd class='body--doc'><p><code>depend()</code>, <code>Concurrent.first_completed()</code></p>
+
</dd></dl>
+
+
+
<hr />
+
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>fold</b></span>
+
</dt>
+
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>fold</span>(</b><code class='datatype'>mixed</code> <code class='argument'>initial</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>mixed</code>, <code class='datatype'>mixed</code> ... :<code class='datatype'>mixed</code>) <code class='argument'>fun</code>, <code class='datatype'>mixed</code> ... <code class='argument'>extra</code><b>)</b></code></p></dd>
+
+
<dt class='head--doc'><span id='p-initial'></span>Parameter <code class='parameter'>initial</code></dt>
+
<dd></dd><dd class='body--doc'><p>Initial value of the accumulator.</p>
+
</dd>
+
<dt class='head--doc'><span id='p-fun'></span>Parameter <code class='parameter'>fun</code></dt>
+
<dd></dd><dd class='body--doc'><p>Function to apply. The first argument is the result of
+
one of the <code>futures</code>. The second argument is the current value
+
of the accumulator.</p>
+
</dd>
+
<dt class='head--doc'><span id='p-extra'></span>Parameter <code class='parameter'>extra</code></dt>
+
<dd></dd><dd class='body--doc'><p>Any extra context needed for <code>fun</code>. They will be provided
+
as arguments three and onwards when <code>fun</code> is called.</p>
+
</dd>
+
<dt class='head--doc'>Returns</dt>
+
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
+
</dd>
+
<dt class='head--doc'>Note</dt>
+
<dd class='body--doc'><p>If <code>fun</code> throws an error it will fail the <code>Future</code>.</p>
+
</dd>
+
<dt class='head--doc'>Note</dt>
+
<dd class='body--doc'><p><code>fun</code> may be called in any order, and will be called
+
once for every <code>Future</code> it depends upon, unless one of the
+
calls fails in which case no further calls will be
+
performed.</p>
+
</dd>
+
<dt class='head--doc'>See also</dt>
+
<dd class='body--doc'><p><code>depend()</code>, <code>Concurrent.fold()</code></p>
+
</dd></dl>
+
+
+
<hr />
+
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Inherit</span>
+
<span class='homogen--name'><b>Promise</b></span>
+
</dt>
+
<dd><p><code><span class='datatype'>inherit Promise</span> : <span class='inherit'>Promise</span></code></p></dd>
+
</dl>
+
+
+
<hr />
+
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>max_failures</b></span>
+
</dt>
+
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>max_failures</span>(</b><code class='datatype'>int(-1..)</code> <code class='argument'>max</code><b>)</b></code></p></dd>
+
+
<dt class='head--doc'><span id='p-max'></span>Parameter <code class='parameter'>max</code></dt>
+
<dd></dd><dd class='body--doc'><p>Specifies the maximum number of failures to be accepted in
+
the list of futures this promise depends upon.</p>
+
<p> <code class='expr'>-1</code> means unlimited.</p>
+
<p> Defaults to <code class='expr'>0</code>.</p>
+
</dd>
+
<dt class='head--doc'>Returns</dt>
+
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
+
</dd>
+
<dt class='head--doc'>See also</dt>
+
<dd class='body--doc'><p><code>depend()</code>, <code>min_failures()</code>, <code>any_results()</code></p>
+
</dd></dl>
+
+
+
<hr />
+
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>min_failures</b></span>
+
</dt>
+
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>min_failures</span>(</b><code class='datatype'>int(0..)</code> <code class='argument'>min</code><b>)</b></code></p></dd>
+
+
<dt class='head--doc'><span id='p-min'></span>Parameter <code class='parameter'>min</code></dt>
+
<dd></dd><dd class='body--doc'><p>Specifies the minimum number of failures to be required in
+
the list of futures this promise depends upon. Defaults
+
to <code class='expr'>0</code>.</p>
+
</dd>
+
<dt class='head--doc'>Returns</dt>
+
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
+
</dd>
+
<dt class='head--doc'>See also</dt>
+
<dd class='body--doc'><p><code>depend()</code>, <code>max_failures()</code></p>
+
</dd></dl>
+
+
+
<hr />
+
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>start</b></span>
+
</dt>
+
<dd><p><code><code class='modifier'>protected</code> <code class='datatype'>void</code> <b><span class='method'>start</span>(</b><b>)</b></code></p></dd>
+
+
<dt class='head--doc'>Description</dt>
+
<dd class='body--doc'><p>Start the aggregation of values from dependencies.</p>
+
</dd>
+
<dt class='head--doc'>Note</dt>
+
<dd class='body--doc'><p>This function is called from several functions. These
+
include <code>on_success()</code>, <code>on_failure()</code>, <code>wait()</code>,
+
<code>get()</code>, <code>fold()</code> and <code>first_completed()</code>.</p>
+
</dd>
+
<dt class='head--doc'>Note</dt>
+
<dd class='body--doc'><p>After this function has been called, several functions
+
may no longer be called. These include <code>depend()</code>,
+
<code>fold()</code>, <code>first_completed()</code>, <code>max_failures()</code>,
+
<code>min_failures()</code>, <code>any_results()</code>.</p>
+
</dd></dl>
+
</dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Concurrent.Future</b></h2>
+
</dt><dd><dl class='group--doc'>
+
<dt class='head--doc'>Description</dt>
<dd class='body--doc'><p>Value that will be provided asynchronously sometime in the future.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Promise</code></p> </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
autodoc.git/traditional_manual/chapter_21.html:16372:
that is directly returned to the user is the return value from <code>future()</code>.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Future</code>, <code>future()</code></p> </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>aggregate_cb</b></span>
-
</dt>
-
<dd><p><code><code class='modifier'>protected</code> <code class='datatype'>void</code> <b><span class='method'>aggregate_cb</span>(</b><code class='datatype'>mixed</code> <code class='argument'>value</code>, <code class='datatype'>int</code> <code class='argument'>idx</code>, <code class='datatype'>mapping</code>(<code class='datatype'>int</code>:<code class='datatype'>mixed</code>) <code class='argument'>results</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Callback used to aggregate the results from dependencies.</p>
-
</dd>
-
<dt class='head--doc'><span id='p-value'></span>Parameter <code class='parameter'>value</code></dt>
-
<dd></dd><dd class='body--doc'><p>Value received from the dependency.</p>
-
</dd>
-
<dt class='head--doc'><span id='p-idx'></span>Parameter <code class='parameter'>idx</code></dt>
-
<dd></dd><dd class='body--doc'><p>Identification number for the dependency.</p>
-
</dd>
-
<dt class='head--doc'><span id='p-results'></span>Parameter <code class='parameter'>results</code></dt>
-
<dd></dd><dd class='body--doc'><p>Either of the mappings in <code>dependency_results</code> depending on
-
whether this was a success or a failure callback.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>The function may also be called with all arguments set to
-
<code>UNDEFINED</code> in order to poll the current state. This is
-
typically done via a call to <code>start()</code>.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>start()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>any_results</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>any_results</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Sets the number of failures to be accepted in the list of futures
-
this promise
-
depends upon to unlimited. It is equivalent to <code class='expr'>max_failures(-1)</code>.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>depend()</code>, <code>max_failures()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>create</b></span> </dt> <dd><p><code><span class='object'>Concurrent.Promise</span> <span class='class'>Concurrent.Promise</span><b>(</b><code class='datatype'>void</code>|<code class='datatype'>function</code>(<code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>), <code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>), <code class='datatype'>mixed</code> ... :<code class='datatype'>void</code>) <code class='argument'>executor</code>, <code class='datatype'>mixed</code> ... <code class='argument'>extra</code><b>)</b></code></p></dd> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>Creates a new promise, optionally initialised from a traditional callback driven method via <code class='expr'>executor(success, failure, @extra)</code>.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><a href='https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise'>https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise</a></p> </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>depend</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>depend</span>(</b><code class='datatype'>array</code>(<code class='object unresolved'>Future</code>) <code class='argument'>futures</code><b>)</b></code><br>
-
<code><code class='modifier'>local</code> <code class='modifier'>variant</code> <code class='object unresolved'>this_program</code> <b><span class='method'>depend</span>(</b><code class='object unresolved'>Future</code> ... <code class='argument'>futures</code><b>)</b></code><br>
-
<code><code class='modifier'>variant</code> <code class='object unresolved'>this_program</code> <b><span class='method'>depend</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Add futures to the list of futures which the current object depends upon.</p>
-
<p> If called without arguments it will produce a new <code>Future</code>
-
from a new <code>Promise</code> which is implictly added to the dependency list.</p>
-
</dd>
-
<dt class='head--doc'><span id='p-futures'></span>Parameter <code class='parameter'>futures</code></dt>
-
<dd></dd><dd class='body--doc'><p>The list of <code class='expr'>futures</code> we want to add to the list we depend upon.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>Can be called multiple times to add more.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>Once the promise has been materialised (when either <code>on_success()</code>,
-
<code>on_failure()</code> or <code>get()</code> has been called on this object), it is
-
not possible to call <code>depend()</code> anymore.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>fold()</code>, <code>first_completed()</code>, <code>max_failures()</code>, <code>min_failures()</code>,
-
<code>any_results()</code>, <code>Concurrent.results()</code>, <code>Concurrent.all()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Variable</span>
-
<span class='homogen--name'><b>dependency_results</b></span>
-
</dt>
-
<dd><p><code><code class='modifier'>protected</code> <code class='datatype'>array</code>(<code class='datatype'>mapping</code>(<code class='datatype'>int</code>:<code class='datatype'>mixed</code>)) Concurrent.Promise.<b><span class='variable'>dependency_results</span></b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><table class='box'><tr><td colspan='2'>Array</td></tr>
-
<tr><td><code><code class='datatype'>mapping</code>(<code class='datatype'>int</code>:<code class='datatype'>mixed</code>) <code class='key'>0</code></code></td><td><p>Successful results.</p>
-
</td></tr>
-
<tr><td><code><code class='datatype'>mapping</code>(<code class='datatype'>int</code>:<code class='datatype'>mixed</code>) <code class='key'>1</code></code></td><td><p>Failed results.</p>
-
</td></tr>
-
</table>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>failure</b></span> </dt> <dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>failure</span>(</b><code class='datatype'>mixed</code> <code class='argument'>value</code><b>)</b></code></p></dd> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>Reject the <code>Future</code> value.</p> </dd> <dt class='head--doc'><span id='p-value'></span>Parameter <code class='parameter'>value</code></dt> <dd></dd><dd class='body--doc'><p>Failure result of the <code>Future</code>.</p> </dd>
autodoc.git/traditional_manual/chapter_21.html:16513:
callbacks to be called as soon as possible.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>try_failure()</code>, <code>success()</code>, <code>on_failure()</code></p> </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>first_completed</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>first_completed</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>It evaluates to the first future that completes of the list
-
of futures it depends upon.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>depend()</code>, <code>Concurrent.first_completed()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>fold</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>fold</span>(</b><code class='datatype'>mixed</code> <code class='argument'>initial</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>mixed</code>, <code class='datatype'>mixed</code> ... :<code class='datatype'>mixed</code>) <code class='argument'>fun</code>, <code class='datatype'>mixed</code> ... <code class='argument'>extra</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'><span id='p-initial'></span>Parameter <code class='parameter'>initial</code></dt>
-
<dd></dd><dd class='body--doc'><p>Initial value of the accumulator.</p>
-
</dd>
-
<dt class='head--doc'><span id='p-fun'></span>Parameter <code class='parameter'>fun</code></dt>
-
<dd></dd><dd class='body--doc'><p>Function to apply. The first argument is the result of
-
one of the <code>futures</code>. The second argument is the current value
-
of the accumulator.</p>
-
</dd>
-
<dt class='head--doc'><span id='p-extra'></span>Parameter <code class='parameter'>extra</code></dt>
-
<dd></dd><dd class='body--doc'><p>Any extra context needed for <code>fun</code>. They will be provided
-
as arguments three and onwards when <code>fun</code> is called.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>If <code>fun</code> throws an error it will fail the <code>Future</code>.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p><code>fun</code> may be called in any order, and will be called
-
once for every <code>Future</code> it depends upon, unless one of the
-
calls fails in which case no further calls will be
-
performed.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>depend()</code>, <code>Concurrent.fold()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>future</b></span> </dt> <dd><p><code><code class='object unresolved'>Future</code> <b><span class='method'>future</span>(</b><b>)</b></code></p></dd> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>The future value that we promise.</p> </dd></dl> <hr />
autodoc.git/traditional_manual/chapter_21.html:16589:
<dt class='head--type'><span class='homogen--type'>Inherit</span> <span class='homogen--name'><b>Future</b></span> </dt> <dd><p><code><span class='datatype'>inherit Future</span> : <span class='inherit'>Future</span></code></p></dd> </dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>max_failures</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>max_failures</span>(</b><code class='datatype'>int(-1..)</code> <code class='argument'>max</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'><span id='p-max'></span>Parameter <code class='parameter'>max</code></dt>
-
<dd></dd><dd class='body--doc'><p>Specifies the maximum number of failures to be accepted in
-
the list of futures this promise depends upon.</p>
-
<p> <code class='expr'>-1</code> means unlimited.</p>
-
<p> Defaults to <code class='expr'>0</code>.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>depend()</code>, <code>min_failures()</code>, <code>any_results()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>min_failures</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>min_failures</span>(</b><code class='datatype'>int(0..)</code> <code class='argument'>min</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'><span id='p-min'></span>Parameter <code class='parameter'>min</code></dt>
-
<dd></dd><dd class='body--doc'><p>Specifies the minimum number of failures to be required in
-
the list of futures this promise depends upon. Defaults
-
to <code class='expr'>0</code>.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>The new <code>Promise</code>.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>depend()</code>, <code>max_failures()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>start</b></span>
-
</dt>
-
<dd><p><code><code class='modifier'>protected</code> <code class='datatype'>void</code> <b><span class='method'>start</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Start the aggregation of values from dependencies.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>This function is called from several functions. These
-
include <code>on_success()</code>, <code>on_failure()</code>, <code>wait()</code>,
-
<code>get()</code>, <code>fold()</code> and <code>first_completed()</code>.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>After this function has been called, several functions
-
may no longer be called. These include <code>depend()</code>,
-
<code>fold()</code>, <code>first_completed()</code>, <code>max_failures()</code>,
-
<code>min_failures()</code>, <code>any_results()</code>.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>success</b></span> </dt> <dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>success</span>(</b><code class='datatype'>mixed</code> <code class='argument'>value</code><b>)</b></code></p></dd> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>Fulfill the <code>Future</code>.</p> </dd> <dt class='head--doc'><span id='p-value'></span>Parameter <code class='parameter'>value</code></dt> <dd></dd><dd class='body--doc'><p>Result of the <code>Future</code>.</p> </dd>