$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r56768 - in sandbox/async/libs/async/doc: . html html/toward_boost_async html/toward_boost_async/appendices html/toward_boost_async/examples html/toward_boost_async/overview html/toward_boost_async/reference html/toward_boost_async/users_guide
From: vicente.botet_at_[hidden]
Date: 2009-10-13 02:51:24
Author: viboes
Date: 2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
New Revision: 56768
URL: http://svn.boost.org/trac/boost/changeset/56768
Log:
TBoost.Async: 
* Added doc
Added:
   sandbox/async/libs/async/doc/html/
   sandbox/async/libs/async/doc/html/index.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/standalone_HTML.manifest   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/
   sandbox/async/libs/async/doc/html/toward_boost_async/appendices/
   sandbox/async/libs/async/doc/html/toward_boost_async/appendices.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/appendices/acknowledgments.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/appendices/changes.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/appendices/implementation.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/appendices/rationale.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/appendices/tests.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/appendices/tickets.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/appendices/todo.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/examples/
   sandbox/async/libs/async/doc/html/toward_boost_async/examples.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/examples/from_a_single_to_a_multi_threaded_application.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/examples/parallel_sort.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/overview/
   sandbox/async/libs/async/doc/html/toward_boost_async/overview.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/overview/motivation.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/reference/
   sandbox/async/libs/async/doc/html/toward_boost_async/reference.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/reference/ae_act_framework_reference.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/reference/ae_act_models_reference.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/reference/concepts.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/
   sandbox/async/libs/async/doc/html/toward_boost_async/users_guide.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/bibliography.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/getting_started.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/glosary.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/glossary.html   (contents, props changed)
   sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/tutorial.html   (contents, props changed)
Text files modified: 
   sandbox/async/libs/async/doc/async.qbk |     2 ++                                      
   1 files changed, 2 insertions(+), 0 deletions(-)
Modified: sandbox/async/libs/async/doc/async.qbk
==============================================================================
--- sandbox/async/libs/async/doc/async.qbk	(original)
+++ sandbox/async/libs/async/doc/async.qbk	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -10,6 +10,8 @@
     [quickbook 1.4]
     [authors [Botet Escriba, Vicente J.]]
     [copyright 2008-2009 Vicente J. Botet Escriba]
+    [id boost.async]
+    [dirname async]
     [purpose C++ Asynchronous executors and asyncronous completion tokes framework with threaders/joiners, launcher.]
     [category text]
     [license
Added: sandbox/async/libs/async/doc/html/index.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/index.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,102 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Toward Boost Async</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="index.html" title="Toward Boost Async">
+<link rel="next" href="toward_boost_async/overview.html" title=" Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="toward_boost_async/overview.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
+<div class="article" lang="en">
+<div class="titlepage">
+<div>
+<div><h2 class="title">
+<a name="boost.async"></a>Toward Boost Async</h2></div>
+<div><div class="authorgroup"><div class="author"><h3 class="author">
+<span class="firstname">Vicente J.</span> <span class="surname">Botet Escriba</span>
+</h3></div></div></div>
+<div><p class="copyright">Copyright © 2008 -2009 Vicente J. Botet Escriba</p></div>
+<div><div class="legalnotice">
+<a name="id4803230"></a><p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></div>
+</div>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"> Overview</span></dt>
+<dd><dl><dt><span class="section"> Motivation</span></dt></dl></dd>
+<dt><span class="section"> Users'Guide</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="toward_boost_async/users_guide/getting_started.html"> Getting
+      Started</a></span></dt>
+<dt><span class="section"> Tutorial</span></dt>
+<dt><span class="section"> References</span></dt>
+<dt><span class="section"> Glossary</span></dt>
+</dl></dd>
+<dt><span class="section"> Reference</span></dt>
+<dd><dl>
+<dt><span class="section">Concepts</span></dt>
+<dt><span class="section"><a href="toward_boost_async/reference/ae_act_framework_reference.html">AE/ACT
+      Framework Reference</a></span></dt>
+<dt><span class="section"><a href="toward_boost_async/reference/ae_act_models_reference.html">AE/ACT
+      Models Reference</a></span></dt>
+</dl></dd>
+<dt><span class="section">Examples</span></dt>
+<dd><dl>
+<dt><span class="section">Parallel sort</span></dt>
+<dt><span class="section"><a href="toward_boost_async/examples/from_a_single_to_a_multi_threaded_application.html">From
+      a single to a multi threaded application</a></span></dt>
+</dl></dd>
+<dt><span class="section">Appendices</span></dt>
+<dd><dl>
+<dt><span class="section"> Appendix A: History</span></dt>
+<dt><span class="section"><a href="toward_boost_async/appendices/rationale.html"> Appendix B:
+      Rationale</a></span></dt>
+<dt><span class="section"><a href="toward_boost_async/appendices/implementation.html"> Appendix
+      C: Implementation Notes</a></span></dt>
+<dt><span class="section"><a href="toward_boost_async/appendices/acknowledgments.html"> Appendix
+      D: Acknowledgments</a></span></dt>
+<dt><span class="section"> Appendix E: Tests</span></dt>
+<dt><span class="section"> Appendix F: Tickets</span></dt>
+<dt><span class="section"><a href="toward_boost_async/appendices/todo.html"> Appendix G: Future
+      plans</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../../../doc/html/images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+      Async is not a part of the Boost libraries.
+    </p></td></tr>
+</table></div>
+<p>
+    [/
+  </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><p><small>Last revised: October 05, 2009 at 16:50:16 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="toward_boost_async/overview.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/standalone_HTML.manifest
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/standalone_HTML.manifest	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,23 @@
+index.html
+toward_boost_async/overview.html
+toward_boost_async/overview/motivation.html
+toward_boost_async/users_guide.html
+toward_boost_async/users_guide/getting_started.html
+toward_boost_async/users_guide/tutorial.html
+toward_boost_async/users_guide/bibliography.html
+toward_boost_async/users_guide/glossary.html
+toward_boost_async/reference.html
+toward_boost_async/reference/concepts.html
+toward_boost_async/reference/ae_act_framework_reference.html
+toward_boost_async/reference/ae_act_models_reference.html
+toward_boost_async/examples.html
+toward_boost_async/examples/parallel_sort.html
+toward_boost_async/examples/from_a_single_to_a_multi_threaded_application.html
+toward_boost_async/appendices.html
+toward_boost_async/appendices/changes.html
+toward_boost_async/appendices/rationale.html
+toward_boost_async/appendices/implementation.html
+toward_boost_async/appendices/acknowledgments.html
+toward_boost_async/appendices/tests.html
+toward_boost_async/appendices/tickets.html
+toward_boost_async/appendices/todo.html
Added: sandbox/async/libs/async/doc/html/toward_boost_async/appendices.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/appendices.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Appendices</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../index.html" title="Toward Boost Async">
+<link rel="up" href="../index.html" title="Toward Boost Async">
+<link rel="prev" href="examples/from_a_single_to_a_multi_threaded_application.html" title="From
+      a single to a multi threaded application">
+<link rel="next" href="appendices/changes.html" title=" Appendix A: History">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="examples/from_a_single_to_a_multi_threaded_application.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="appendices/changes.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="toward_boost_async.appendices"></a>Appendices
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"> Appendix A: History</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="appendices/changes.html#toward_boost_async.appendices.changes.__version_0_2__may_07__2009__adding_immediate_asynchronous_executor___adaptation_to_boost_1_39"><span class="bold"><strong>Version 0.2, May 07, 2009</strong></span> Adding immediate asynchronous
+        executor + Adaptation to Boost 1.39</a></span></dt>
+<dt><span class="section"><a href="appendices/changes.html#toward_boost_async.appendices.changes.__version_0_1__april_29__2009__extraction_of_the_ae_act_frameworks_from_boost_async"><span class="bold"><strong>Version 0.1, April 29, 2009</strong></span> Extraction of the AE/ACT
+        frameworks from Boost.Async</a></span></dt>
+<dt><span class="section">Bugs</span></dt>
+</dl></dd>
+<dt><span class="section"><a href="appendices/rationale.html"> Appendix B:
+      Rationale</a></span></dt>
+<dt><span class="section"><a href="appendices/implementation.html"> Appendix
+      C: Implementation Notes</a></span></dt>
+<dt><span class="section"><a href="appendices/acknowledgments.html"> Appendix
+      D: Acknowledgments</a></span></dt>
+<dt><span class="section"> Appendix E: Tests</span></dt>
+<dd><dl><dt><span class="section">AE/ACT</span></dt></dl></dd>
+<dt><span class="section"> Appendix F: Tickets</span></dt>
+<dt><span class="section"><a href="appendices/todo.html"> Appendix G: Future
+      plans</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="appendices/todo.html#toward_boost_async.appendices.todo.tasks_to_do_before_review">Tasks
+        to do before review</a></span></dt>
+<dt><span class="section"><a href="appendices/todo.html#toward_boost_async.appendices.todo.for_later_releases">For
+        later releases</a></span></dt>
+</dl></dd>
+</dl></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="examples/from_a_single_to_a_multi_threaded_application.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="appendices/changes.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/appendices/acknowledgments.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/appendices/acknowledgments.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,57 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Appendix
+      D: Acknowledgments</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../appendices.html" title="Appendices">
+<link rel="prev" href="implementation.html" title=" Appendix
+      C: Implementation Notes">
+<link rel="next" href="tests.html" title=" Appendix E: Tests">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="implementation.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tests.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.appendices.acknowledgments"></a><a href="acknowledgments.html" title=" Appendix
+      D: Acknowledgments"> Appendix
+      D: Acknowledgments</a>
+</h3></div></div></div>
+<p>
+        The Threader|Joiner design has been taken from <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1883.pdf" target="_top">N1833
+        - Preliminary Threading Library Proposal for TR2</a> Many thanks to Kevlin
+        Henney to make evident to me the separation between asynchronous executors,
+        and asynchronous completion tokens. Thanks to Alan Patterson for the idea
+        of the immediate executor.
+      </p>
+<p>
+        You can help me to make this library better! Any feedback is very welcome.
+      </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="implementation.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tests.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/appendices/changes.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/appendices/changes.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,151 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Appendix A: History</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../appendices.html" title="Appendices">
+<link rel="prev" href="../appendices.html" title="Appendices">
+<link rel="next" href="rationale.html" title=" Appendix B:
+      Rationale">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../appendices.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.appendices.changes"></a> Appendix A: History
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="changes.html#toward_boost_async.appendices.changes.__version_0_2__may_07__2009__adding_immediate_asynchronous_executor___adaptation_to_boost_1_39"><span class="bold"><strong>Version 0.2, May 07, 2009</strong></span> Adding immediate asynchronous
+        executor + Adaptation to Boost 1.39</a></span></dt>
+<dt><span class="section"><a href="changes.html#toward_boost_async.appendices.changes.__version_0_1__april_29__2009__extraction_of_the_ae_act_frameworks_from_boost_async"><span class="bold"><strong>Version 0.1, April 29, 2009</strong></span> Extraction of the AE/ACT
+        frameworks from Boost.Async</a></span></dt>
+<dt><span class="section">Bugs</span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.appendices.changes.__version_0_2__may_07__2009__adding_immediate_asynchronous_executor___adaptation_to_boost_1_39"></a><a href="changes.html#toward_boost_async.appendices.changes.__version_0_2__may_07__2009__adding_immediate_asynchronous_executor___adaptation_to_boost_1_39" title="Version 0.2, May 07, 2009 Adding immediate asynchronous
+        executor + Adaptation to Boost 1.39"><span class="bold"><strong>Version 0.2, May 07, 2009</strong></span> Adding immediate asynchronous
+        executor + Adaptation to Boost 1.39</a>
+</h4></div></div></div>
+<p>
+          <span class="bold"><strong>Features:</strong></span>
+        </p>
+<div class="itemizedlist"><ul type="disc"><li>
+            Immediate asynchronous executor
+          </li></ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.appendices.changes.__version_0_1__april_29__2009__extraction_of_the_ae_act_frameworks_from_boost_async"></a><a href="changes.html#toward_boost_async.appendices.changes.__version_0_1__april_29__2009__extraction_of_the_ae_act_frameworks_from_boost_async" title="Version 0.1, April 29, 2009 Extraction of the AE/ACT
+        frameworks from Boost.Async"><span class="bold"><strong>Version 0.1, April 29, 2009</strong></span> Extraction of the AE/ACT
+        frameworks from Boost.Async</a>
+</h4></div></div></div>
+<p>
+          <span class="bold"><strong>Features:</strong></span>
+        </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            An asynchronous execution framework working with <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+            and <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            It includes some generic functions and several <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+            and <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>:
+            <div class="itemizedlist"><ul type="circle">
+<li>
+                fork and fork_all to execute asynchronously functions
+              </li>
+<li>
+                fork_after: request an <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+                to execute a function asynchronously once each one of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code> in
+                the dependency tuple parameter are ready. It is similar to the async_with_dependencies
+                proposed Peter Dimov.
+              </li>
+<li>
+                generic get, join, ... free functions to synchronize on an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+</li>
+<li>
+                generic get_all, join_all, ... free functions to synchronize on multiple
+                <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+</li>
+<li>
+                generic wait_for_all, wait_for_any to execute asynchronously functions
+                and wait for the completion of all or any of them.
+              </li>
+</ul></div>
+</li>
+<li>
+            Some <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+            and <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            models
+            <div class="itemizedlist"><ul type="circle">
+<li>
+                basic_threader: can be seen as a thread factory executing asynchronously
+                a function on the returned thread.
+              </li>
+<li>
+                launchers: Launchers can be seen as a future factory executing asynchronously
+                a function on a hidden thread.
+              </li>
+<li>
+                threader/joiner: A Threader runs a unary function in its own thread.
+                A Threader can be seen as a Joiner factory executing asynchronously
+                a function on a thread encapsulated on the returned Joiner. The joiner
+                is used to synchronize with and pick up the result from a function
+                or to manage the encapsulated thread.
+              </li>
+<li>
+<code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span></code> and <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span></code>
+                customization as an <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+                and an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                respectively. <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span></code>
+                can be seen as a <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span></code>
+                factory executing asynchronously a function on a pool of threads.
+              </li>
+<li>
+                a generic asynchronous_executor_decorator which allows to decorate
+                the function to be evaluated asynchronously.
+              </li>
+</ul></div>
+</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.appendices.changes.__bugs_"></a>Bugs
+</h4></div></div></div>
+<a name="toward_boost_async.appendices.changes.__bugs_._emphasis_role__bold__open_bugs___emphasis_"></a><h5>
+<a name="id4892622"></a>
+          Open Bugs:
+        </h5>
+<a name="toward_boost_async.appendices.changes.__bugs_._emphasis_role__bold__fixed_bugs___emphasis_"></a><h5>
+<a name="id4892649"></a>
+          Fixed Bugs:
+        </h5>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../appendices.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/appendices/implementation.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/appendices/implementation.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Appendix
+      C: Implementation Notes</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../appendices.html" title="Appendices">
+<link rel="prev" href="rationale.html" title=" Appendix B:
+      Rationale">
+<link rel="next" href="acknowledgments.html" title=" Appendix
+      D: Acknowledgments">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rationale.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgments.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.appendices.implementation"></a><a href="implementation.html" title=" Appendix
+      C: Implementation Notes"> Appendix
+      C: Implementation Notes</a>
+</h3></div></div></div>
+<p>
+        TBC
+      </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rationale.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgments.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/appendices/rationale.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/appendices/rationale.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Appendix B:
+      Rationale</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../appendices.html" title="Appendices">
+<link rel="prev" href="changes.html" title=" Appendix A: History">
+<link rel="next" href="implementation.html" title=" Appendix
+      C: Implementation Notes">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="changes.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="implementation.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.appendices.rationale"></a><a href="rationale.html" title=" Appendix B:
+      Rationale"> Appendix B:
+      Rationale</a>
+</h3></div></div></div>
+<p>
+        TBC
+      </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="changes.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="implementation.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/appendices/tests.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/appendices/tests.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,1663 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Appendix E: Tests</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../appendices.html" title="Appendices">
+<link rel="prev" href="acknowledgments.html" title=" Appendix
+      D: Acknowledgments">
+<link rel="next" href="tickets.html" title=" Appendix F: Tickets">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="acknowledgments.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tickets.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.appendices.tests"></a> Appendix E: Tests
+</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section">AE/ACT</span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.appendices.tests.ae_act"></a>AE/ACT
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Name
+                </p>
+                </th>
+<th>
+                <p>
+                  Description
+                </p>
+                </th>
+<th>
+                <p>
+                  Pool
+                </p>
+                </th>
+<th>
+                <p>
+                  BaTh
+                </p>
+                </th>
+<th>
+                <p>
+                  ShLa
+                </p>
+                </th>
+<th>
+                <p>
+                  ShTh
+                </p>
+                </th>
+<th>
+                <p>
+                  UnLa
+                </p>
+                </th>
+<th>
+                <p>
+                  UnLa
+                </p>
+                </th>
+<th>
+                <p>
+                  Ticket
+                </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  do_test_member_fork
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and get
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_member_fork_m
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and get
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_member_fork_bind
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and get
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_member_fork_bind_m
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and get
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_fork
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks a nullary function and get
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_fork_1
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks a unary function and get
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_fork_1_m
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks a unary function and get
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_creation_through_functor
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks a functor
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_creation_through_reference_wrapper
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks a reference wrapper
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_wait
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and waits
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_wait_until
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and waits until a given time
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_wait_for
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and waits for a given time
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_get
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and get
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_wait_all
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks several and waits all
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_wait_all_until
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks several and waits all until a given time
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_wait_all_for
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks several and waits all for a given time
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_set_all
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks several and get all using set_all
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_get_all
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks several and get all
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  Fail
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_wait_for_all
+                </p>
+                </td>
+<td>
+                <p>
+                  wait for all
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_wait_for_any
+                </p>
+                </td>
+<td>
+                <p>
+                  waits for any
+                </p>
+                </td>
+<td>
+                <p>
+                  Fail
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_wait_for_any_fusion_sequence
+                </p>
+                </td>
+<td>
+                <p>
+                  Wait for any in a fusion sequence
+                </p>
+                </td>
+<td>
+                <p>
+                  Fail
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_member_fork_detach
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and detach
+                </p>
+                </td>
+<td>
+                <p>
+                  Fail
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_thread_interrupts_at_interruption_point
+                </p>
+                </td>
+<td>
+                <p>
+                  Interrupt
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_join
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and join
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_join_until
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and joins until a given time
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_join_for
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks and joins for a given time
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_join_all
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks several and join all
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_join_all_until
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks several and join all until a given time
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_join_all_for
+                </p>
+                </td>
+<td>
+                <p>
+                  Forks several and join all for a given time
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ----
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_fork_after_join
+                </p>
+                </td>
+<td>
+                <p>
+                  Fork after some dependent ACT and then join
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_fork_after_wait
+                </p>
+                </td>
+<td>
+                <p>
+                  Fork after some dependent ACT and then wait
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  do_test_fork_after_get
+                </p>
+                </td>
+<td>
+                <p>
+                  Fork after some dependent ACT and then get the value
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  Pass
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  XXXXXXXXXXXXXXXXXXXXXX
+                </p>
+                </td>
+<td>
+                <p>
+                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+                </p>
+                </td>
+<td>
+                <p>
+                  XXXX
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  ????
+                </p>
+                </td>
+<td>
+                <p>
+                  #
+                </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="acknowledgments.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tickets.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/appendices/tickets.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/appendices/tickets.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Appendix F: Tickets</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../appendices.html" title="Appendices">
+<link rel="prev" href="tests.html" title=" Appendix E: Tests">
+<link rel="next" href="todo.html" title=" Appendix G: Future
+      plans">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tests.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="todo.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.appendices.tickets"></a> Appendix F: Tickets
+</h3></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<tbody><tr>
+<td>
+              <p>
+                Kind
+              </p>
+              </td>
+<td>
+              <p>
+                Identifier
+              </p>
+              </td>
+<td>
+              <p>
+                Description
+              </p>
+              </td>
+<td>
+              <p>
+                Resolution
+              </p>
+              </td>
+<td>
+              <p>
+                State
+              </p>
+              </td>
+<td>
+              <p>
+                Tests
+              </p>
+              </td>
+<td>
+              <p>
+                Version
+              </p>
+              </td>
+</tr></tbody>
+</table></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tests.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="todo.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/appendices/todo.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/appendices/todo.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,167 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Appendix G: Future
+      plans</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../appendices.html" title="Appendices">
+<link rel="prev" href="tickets.html" title=" Appendix F: Tickets">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tickets.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.appendices.todo"></a><a href="todo.html" title=" Appendix G: Future
+      plans"> Appendix G: Future
+      plans</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="todo.html#toward_boost_async.appendices.todo.tasks_to_do_before_review">Tasks
+        to do before review</a></span></dt>
+<dt><span class="section"><a href="todo.html#toward_boost_async.appendices.todo.for_later_releases">For
+        later releases</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.appendices.todo.tasks_to_do_before_review"></a><a href="todo.html#toward_boost_async.appendices.todo.tasks_to_do_before_review" title="Tasks
+        to do before review">Tasks
+        to do before review</a>
+</h4></div></div></div>
+<a name="toward_boost_async.appendices.todo.tasks_to_do_before_review.add_an_overloading_for_wait_for_all_in_sequence_ae__f__seq_"></a><h5>
+<a name="id4894972"></a>
+          <a href="todo.html#toward_boost_async.appendices.todo.tasks_to_do_before_review.add_an_overloading_for_wait_for_all_in_sequence_ae__f__seq_">Add
+          an overloading for wait_for_all_in_sequence(ae, f, seq)</a>
+        </h5>
+<p>
+          This will be quite useful on recursive algorithms evaluating asynchronously
+          the same function on different parts.
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span>
+    <span class="keyword">typename</span> <span class="identifier">DirectSolver</span><span class="special">,</span>
+    <span class="keyword">typename</span> <span class="identifier">Composer</span><span class="special">,</span>
+    <span class="keyword">typename</span> <span class="identifier">AsynchronousExecutor</span><span class="special">,</span>
+    <span class="keyword">typename</span> <span class="identifier">Input</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">inplace_solve</span><span class="special">(</span><span class="identifier">AsynchronousExecutor</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">Problem</span><span class="special">&</span> <span class="identifier">input</span><span class="special">)</span> <span class="special">{</span>
+  <span class="comment">//  if (problem is small)
+</span>    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">range</span><span class="special">)</span> <span class="special"><</span> <span class="identifier">concurrency_threshold</span><span class="special">)</span> <span class="special">{</span>
+    <span class="comment">// directly solve problem
+</span>        <span class="identifier">DirectSolver</span><span class="special">()(</span><span class="identifier">input</span><span class="special">);</span>
+    <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+        <span class="comment">// split problem into independent parts
+</span>        <span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">partition</span><span class="special">,</span> <span class="identifier">partition_view</span><span class="special">(</span><span class="identifier">input</span><span class="special">));</span>
+        <span class="comment">// evaluates asynchronously inplace_solve on each element of the partition
+</span>        <span class="comment">// using the asynchronous executor as scheduler
+</span>        <span class="identifier">wait_for_all_in_sequence</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">inplace_solve</span><span class="special">,</span> <span class="identifier">partition</span><span class="special">);</span>
+        <span class="comment">// compose the result in place from subresults
+</span>        <span class="identifier">Composer</span><span class="special">()(</span><span class="identifier">partition</span><span class="special">);</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<a name="toward_boost_async.appendices.todo.tasks_to_do_before_review.add_polymorphic_act_and_adapters"></a><h5>
+<a name="id4895384"></a>
+          <a href="todo.html#toward_boost_async.appendices.todo.tasks_to_do_before_review.add_polymorphic_act_and_adapters">Add
+          polymorphic act and adapters</a>
+        </h5>
+<p>
+          When we need to chain <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+          using the fork_after the nature of the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+          can change over time, an why not change also its template parameter. So
+          at least we need to make polymorphic every function used by fork_after.
+        </p>
+<a name="toward_boost_async.appendices.todo.tasks_to_do_before_review.complete_the_tests"></a><h5>
+<a name="id4895438"></a>
+          <a href="todo.html#toward_boost_async.appendices.todo.tasks_to_do_before_review.complete_the_tests">Complete
+          the tests</a>
+        </h5>
+<p>
+          Even if the current release include some test there is yet a long way before
+          been able to review the library.
+        </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            change the test so they take less time using locks; conditions and variables.
+          </li>
+<li>
+            Complete the test for the AE/ACT framework
+          </li>
+<li>
+            Add test with functions throwing
+          </li>
+</ul></div>
+<a name="toward_boost_async.appendices.todo.tasks_to_do_before_review.add_more_examples"></a><h5>
+<a name="id4895484"></a>
+          <a href="todo.html#toward_boost_async.appendices.todo.tasks_to_do_before_review.add_more_examples">Add
+          more examples</a>
+        </h5>
+<a name="toward_boost_async.appendices.todo.tasks_to_do_before_review.complete_the_reference"></a><h5>
+<a name="id4895509"></a>
+          <a href="todo.html#toward_boost_async.appendices.todo.tasks_to_do_before_review.complete_the_reference">Complete
+          the reference</a>
+        </h5>
+<div class="itemizedlist"><ul type="disc"><li>
+            ae/act framework
+          </li></ul></div>
+<a name="toward_boost_async.appendices.todo.tasks_to_do_before_review.change_the_rational_and_implementation_sections"></a><h5>
+<a name="id4895542"></a>
+          <a href="todo.html#toward_boost_async.appendices.todo.tasks_to_do_before_review.change_the_rational_and_implementation_sections">Change
+          the rational and implementation sections</a>
+        </h5>
+<a name="toward_boost_async.appendices.todo.tasks_to_do_before_review.use_boost_chrono"></a><h5>
+<a name="id4895567"></a>
+          <a href="todo.html#toward_boost_async.appendices.todo.tasks_to_do_before_review.use_boost_chrono">Use
+          Boost.Chrono</a>
+        </h5>
+<a name="toward_boost_async.appendices.todo.tasks_to_do_before_review.add_c__0x_move_semantics_on_compilers_supporting_it_and_use_the_boost_move_emulation_otherwise"></a><h5>
+<a name="id4895589"></a>
+          <a href="todo.html#toward_boost_async.appendices.todo.tasks_to_do_before_review.add_c__0x_move_semantics_on_compilers_supporting_it_and_use_the_boost_move_emulation_otherwise">Add
+          C++0x move semantics on compilers supporting it and use the Boost.Move
+          emulation otherwise</a>
+        </h5>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.appendices.todo.for_later_releases"></a><a href="todo.html#toward_boost_async.appendices.todo.for_later_releases" title="For
+        later releases">For
+        later releases</a>
+</h4></div></div></div>
+<a name="toward_boost_async.appendices.todo.for_later_releases.use_c__0x_variadic_templates_on_compilers_supporting_it_and_use_the_preprocessor_otherwise"></a><h5>
+<a name="id4895639"></a>
+          <a href="todo.html#toward_boost_async.appendices.todo.for_later_releases.use_c__0x_variadic_templates_on_compilers_supporting_it_and_use_the_preprocessor_otherwise">Use
+          C++0x variadic templates on compilers supporting it and use the preprocessor
+          otherwise</a>
+        </h5>
+<a name="toward_boost_async.appendices.todo.for_later_releases.use_c__0x_concepts_on_compilers_supporting_them_and_use_the_boost_conceptcheck_or_boost_concepttraits_otherwise"></a><h5>
+<a name="id4895670"></a>
+          <a href="todo.html#toward_boost_async.appendices.todo.for_later_releases.use_c__0x_concepts_on_compilers_supporting_them_and_use_the_boost_conceptcheck_or_boost_concepttraits_otherwise">Use
+          C++0x Concepts on compilers supporting them and use the Boost.ConceptCheck
+          or Boost.ConceptTraits otherwise</a>
+        </h5>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tickets.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/examples.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/examples.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Examples</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../index.html" title="Toward Boost Async">
+<link rel="up" href="../index.html" title="Toward Boost Async">
+<link rel="prev" href="reference/ae_act_models_reference.html" title="AE/ACT
+      Models Reference">
+<link rel="next" href="examples/parallel_sort.html" title="Parallel sort">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference/ae_act_models_reference.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="examples/parallel_sort.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="toward_boost_async.examples"></a>Examples
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Parallel sort</span></dt>
+<dt><span class="section"><a href="examples/from_a_single_to_a_multi_threaded_application.html">From
+      a single to a multi threaded application</a></span></dt>
+</dl></div>
+<p>
+      This section do includes complete examples using the library.
+    </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference/ae_act_models_reference.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="examples/parallel_sort.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/examples/from_a_single_to_a_multi_threaded_application.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/examples/from_a_single_to_a_multi_threaded_application.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,44 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>From
+      a single to a multi threaded application</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../examples.html" title="Examples">
+<link rel="prev" href="parallel_sort.html" title="Parallel sort">
+<link rel="next" href="../appendices.html" title="Appendices">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="parallel_sort.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../appendices.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.examples.from_a_single_to_a_multi_threaded_application"></a><a href="from_a_single_to_a_multi_threaded_application.html" title="From
+      a single to a multi threaded application">From
+      a single to a multi threaded application</a>
+</h3></div></div></div></div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="parallel_sort.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../appendices.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/examples/parallel_sort.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/examples/parallel_sort.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,118 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Parallel sort</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../examples.html" title="Examples">
+<link rel="prev" href="../examples.html" title="Examples">
+<link rel="next" href="from_a_single_to_a_multi_threaded_application.html" title="From
+      a single to a multi threaded application">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../examples.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="from_a_single_to_a_multi_threaded_application.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.examples.parallel_sort"></a>Parallel sort
+</h3></div></div></div>
+<p>
+        Next follows a generic algorithm based on partitioning of a given problem
+        in smaller problems, and compose a solution from the solution of the smaller
+        problems.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span>
+    <span class="keyword">typename</span> <span class="identifier">DirectSolver</span><span class="special">,</span>
+    <span class="keyword">typename</span> <span class="identifier">Composer</span><span class="special">,</span>
+    <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span>
+    <span class="keyword">typename</span> <span class="identifier">Range</span>
+<span class="special">></span>
+  <span class="keyword">void</span> <span class="identifier">inplace_solve</span><span class="special">(</span> <span class="identifier">AE</span> <span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> 
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span><span class="special">></span> <span class="identifier">range</span><span class="special">,</span> 
+        <span class="keyword">unsigned</span> <span class="identifier">cutoff</span> <span class="special">);</span>
+        
+<span class="keyword">template</span> <span class="special"><</span>
+    <span class="keyword">typename</span> <span class="identifier">DirectSolver</span><span class="special">,</span>
+    <span class="keyword">typename</span> <span class="identifier">Composer</span><span class="special">,</span>
+    <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span>
+    <span class="keyword">typename</span> <span class="identifier">Range</span>
+<span class="special">></span>
+  <span class="keyword">void</span> <span class="identifier">inplace_solve</span><span class="special">(</span> <span class="identifier">AE</span> <span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> 
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span><span class="special">></span> <span class="identifier">range</span><span class="special">,</span> 
+        <span class="keyword">unsigned</span> <span class="identifier">cutoff</span> <span class="special">)</span>
+  <span class="special">{</span>
+    <span class="keyword">unsigned</span> <span class="identifier">size</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">range</span><span class="special">);</span>
+    <span class="comment">//std::cout << "<<par_ " << size;  
+</span>    <span class="keyword">if</span> <span class="special">(</span> <span class="identifier">size</span> <span class="special"><=</span> <span class="identifier">cutoff</span><span class="special">)</span> <span class="identifier">DirectSolver</span><span class="special">()(</span><span class="identifier">range</span><span class="special">);</span>
+    <span class="keyword">else</span> <span class="special">{</span>
+        <span class="identifier">partition</span><span class="special"><</span><span class="identifier">Range</span><span class="special">></span> <span class="identifier">parts</span><span class="special">(</span><span class="identifier">range</span><span class="special">,</span> <span class="identifier">BOOST_PARTS</span><span class="special">);</span>
+        
+        <span class="comment">// wait_for_all_in_sequence(ae, &inplace_solve<DirectSolver,Composer,AE,Range>, parts);
+</span>        <span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span><span class="identifier">task_type</span><span class="special">></span> <span class="identifier">tasks</span><span class="special">;</span>
+        <span class="keyword">for</span> <span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span><span class="special">;</span><span class="identifier">i</span> <span class="special"><</span> <span class="identifier">BOOST_PARTS</span><span class="special">-</span><span class="number">1</span><span class="special">;</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span> <span class="special">{</span>
+            <span class="identifier">task_type</span> <span class="identifier">tmp</span><span class="special">(</span><span class="identifier">ae</span><span class="special">.</span><span class="identifier">submit</span><span class="special">(</span>
+                <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(</span>
+                    <span class="special">&</span><span class="identifier">inplace_solve</span><span class="special"><</span><span class="identifier">DirectSolver</span><span class="special">,</span><span class="identifier">Composer</span><span class="special">,</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">Range</span><span class="special">>,</span>
+                    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">ae</span><span class="special">),</span>
+                    <span class="identifier">parts</span><span class="special">[</span><span class="identifier">i</span><span class="special">],</span>
+                    <span class="identifier">cutoff</span>
+            <span class="special">)));</span>
+            <span class="identifier">tasks</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">tmp</span><span class="special">);</span>
+        <span class="special">}</span>
+        <span class="identifier">inplace_solve</span><span class="special"><</span><span class="identifier">DirectSolver</span><span class="special">,</span><span class="identifier">Composer</span><span class="special">,</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">Range</span><span class="special">>(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">parts</span><span class="special">[</span><span class="identifier">BOOST_PARTS</span><span class="special">-</span><span class="number">1</span><span class="special">],</span> <span class="identifier">cutoff</span><span class="special">);</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">tasks</span><span class="special">,</span> <span class="special">&</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">wait_act</span><span class="special"><</span><span class="identifier">task_type</span><span class="special">>);</span>
+        <span class="comment">// wait_for_all_in_sequence
+</span>        
+        <span class="identifier">Composer</span><span class="special">()(</span><span class="identifier">range</span><span class="special">);</span>
+    <span class="special">}</span>
+  <span class="special">}</span>
+</pre>
+<p>
+        So parallel sort could be
+      </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">sort_fct</span> <span class="special">{</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
+    <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">RandomAccessRange</span> <span class="identifier">rng</span><span class="special">)</span> <span class="special">{</span>
+        <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">sort</span><span class="special">(</span><span class="identifier">rng</span><span class="special">);</span>
+    <span class="special">}</span>
+<span class="special">};</span>
+
+<span class="keyword">struct</span> <span class="identifier">inplace_merge_fct</span> <span class="special">{</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">></span>
+    <span class="identifier">BidirectionalRange</span><span class="special">&</span>
+    <span class="keyword">operator</span><span class="special">()(</span> <span class="identifier">BidirectionalRange</span> <span class="identifier">rng</span><span class="special">)</span> <span class="special">{</span>
+        <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">inplace_merge</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)+(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)/</span><span class="number">2</span><span class="special">));</span>
+    <span class="special">}</span>
+<span class="special">};</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Range</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">parallel_sort</span><span class="special">(</span><span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">Range</span><span class="special">&</span> <span class="identifier">range</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">cutoff</span><span class="special">=</span><span class="number">10000</span><span class="special">)</span> <span class="special">{</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span><span class="special">></span> <span class="identifier">rng</span><span class="special">(</span><span class="identifier">range</span><span class="special">);</span>
+    <span class="identifier">inplace_solve</span><span class="special"><</span><span class="identifier">sort_fct</span><span class="special">,</span><span class="identifier">inplace_merge_fct</span><span class="special">,</span><span class="identifier">pool_type</span><span class="special">,</span><span class="identifier">Range</span><span class="special">>(</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">cutoff</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../examples.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="from_a_single_to_a_multi_threaded_application.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/overview.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/overview.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,194 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Overview</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../index.html" title="Toward Boost Async">
+<link rel="up" href="../index.html" title="Toward Boost Async">
+<link rel="prev" href="../index.html" title="Toward Boost Async">
+<link rel="next" href="overview/motivation.html" title=" Motivation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="overview/motivation.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="toward_boost_async.overview"></a> Overview
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"> Motivation</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="overview/motivation.html#toward_boost_async.overview.motivation.asynchronous_executors_and_asynchronous_completion_token_handles">Asynchronous
+        Executors and Asynchronous Completion Token Handles</a></span></dt>
+<dt><span class="section">Threader/Joiner</span></dt>
+</dl></dd>
+</dl></div>
+<a name="toward_boost_async.overview.description"></a><h3>
+<a name="id4803159"></a>
+      Description
+    </h3>
+<p>
+      Boost.Async is a C++ library to allow the calling of functions and functors
+      in an asynchronous manner, thereby making it easier to improve the level of
+      concurrency and parallelism in your applications. It provides:
+    </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+        An asynchronous execution framework working with <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+        and <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+        It includes some generic functions and several <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+        and <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>:
+        <div class="itemizedlist"><ul type="circle">
+<li>
+            fork and fork_all to execute asynchronously functions
+          </li>
+<li>
+            fork_after: request an <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+            to execute a function asynchronously once each one of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in the dependency tuple parameter are ready. It is similar to the async_with_dependencies
+            proposed Peter Dimov.
+          </li>
+<li>
+            generic get, join, ... free functions to synchronize on an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+</li>
+<li>
+            generic get_all, join_all, ... free functions to synchronize on multiple
+            <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+</li>
+<li>
+            generic wait_for_all, wait_for_any to execute asynchronously functions
+            and wait for the completion of all or any of them.
+          </li>
+</ul></div>
+</li>
+<li>
+        Some <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+        and <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+        models
+        <div class="itemizedlist"><ul type="circle">
+<li>
+            immediate executors: executes synchronously a function on the current
+            thread. Often used for test purposes
+          </li>
+<li>
+            basic_threader: can be seen as a thread factory executing asynchronously
+            a function on the returned thread.
+          </li>
+<li>
+            launchers: Lanchers can be seen as a future factory executing asynchronously
+            a function on a hidden thread.
+          </li>
+<li>
+            threader/joiner: A Threader runs a unary function in its own thread.
+            A Threader can be seen as a Joiner factory executing asynchronously a
+            function on a thread encapsulated on the returned Joiner. The joiner
+            is used to synchronize with and pick up the result from a function or
+            to manage the encapsulated thread.
+          </li>
+<li>
+<code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span></code> and <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span></code>
+            customization as an <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+            and an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            respectively. <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span></code> can be seen as a <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span></code> factory executing asynchronously
+            a function on a pool of threads.
+          </li>
+<li>
+            a generic asynchronous_executor_decorator which allows to decorate the
+            function to be evaluated asynchronously.
+          </li>
+</ul></div>
+</li>
+</ul></div>
+<p>
+      References
+    </p>
+<div class="itemizedlist"><ul type="disc"><li>
+        The threader-joiner classes are based on the original idea of Kevlin Henney
+        <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1883.pdf" target="_top">N1833
+        - Preliminary Threading Library Proposal for TR2</a>
+</li></ul></div>
+<a name="toward_boost_async.overview.how_to_use_this_documentation"></a><h3>
+<a name="id4764943"></a>
+      <a href="overview.html#toward_boost_async.overview.how_to_use_this_documentation">How
+      to Use This Documentation</a>
+    </h3>
+<p>
+      This documentation makes use of the following naming and formatting conventions.
+    </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+        Code is in <code class="computeroutput"><span class="identifier">fixed</span> <span class="identifier">width</span>
+        <span class="identifier">font</span></code> and is syntax-highlighted.
+      </li>
+<li>
+        Replaceable text that you will need to supply is in
+        <em class="replaceable"><code>
+          italics
+        </code></em>
+        .
+      </li>
+<li>
+        If a name refers to a free function, it is specified like this: <code class="computeroutput"><span class="identifier">free_function</span><span class="special">()</span></code>;
+        that is, it is in code font and its name is followed by <code class="computeroutput"><span class="special">()</span></code>
+        to indicate that it is a free function.
+      </li>
+<li>
+        If a name refers to a class template, it is specified like this: <code class="computeroutput"><span class="identifier">class_template</span><span class="special"><></span></code>;
+        that is, it is in code font and its name is followed by <code class="computeroutput"><span class="special"><></span></code>
+        to indicate that it is a class template.
+      </li>
+<li>
+        If a name refers to a function-like macro, it is specified like this: <code class="computeroutput"><span class="identifier">MACRO</span><span class="special">()</span></code>;
+        that is, it is uppercase in code font and its name is followed by <code class="computeroutput"><span class="special">()</span></code> to indicate that it is a function-like
+        macro. Object-like macros appear without the trailing <code class="computeroutput"><span class="special">()</span></code>.
+      </li>
+<li>
+        Names that refer to <span class="emphasis"><em>concepts</em></span> in the generic programming
+        sense are specified in CamelCase.
+      </li>
+</ul></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/html/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        In addition, notes such as this one specify non-essential information that
+        provides additional background or rationale.
+      </p></td></tr>
+</table></div>
+<p>
+      Finally, you can mentally add the following to any code fragments in this document:
+    </p>
+<pre class="programlisting"><span class="comment">// Include all of Async
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">async</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="comment">// Create a namespace aliases
+</span><span class="keyword">namespace</span> <span class="identifier">basync</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">;</span>
+</pre>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="overview/motivation.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/overview/motivation.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/overview/motivation.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,740 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Motivation</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../overview.html" title=" Overview">
+<link rel="prev" href="../overview.html" title=" Overview">
+<link rel="next" href="../users_guide.html" title=" Users'Guide">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../overview.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../users_guide.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.overview.motivation"></a> Motivation
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="motivation.html#toward_boost_async.overview.motivation.asynchronous_executors_and_asynchronous_completion_token_handles">Asynchronous
+        Executors and Asynchronous Completion Token Handles</a></span></dt>
+<dt><span class="section">Threader/Joiner</span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.overview.motivation.asynchronous_executors_and_asynchronous_completion_token_handles"></a><a href="motivation.html#toward_boost_async.overview.motivation.asynchronous_executors_and_asynchronous_completion_token_handles" title="Asynchronous
+        Executors and Asynchronous Completion Token Handles">Asynchronous
+        Executors and Asynchronous Completion Token Handles</a>
+</h4></div></div></div>
+<p>
+          In <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1883.pdf" target="_top">N1833
+          - Preliminary Threading Library Proposal for TR2</a> Kevlin Henney
+          introduces the concept of <code class="computeroutput"><span class="identifier">threader</span></code>
+          an asynchronous executor and a function <code class="computeroutput"><span class="identifier">thread</span><span class="special">()</span></code> that evaluates a function asynchronously
+          and returns an asynchronous completion token <code class="computeroutput"><span class="identifier">joiner</span></code>,
+          able to join but also to get the value of the function result.
+        </p>
+<p>
+          In <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2185.html" target="_top">N2185
+          - Proposed Text for Parallel Task Execution</a> Peter Dimov introduces
+          a <code class="computeroutput"><span class="identifier">fork</span><span class="special">()</span></code>
+          function able to evaluate a function asynchronously and returns a <code class="computeroutput"><span class="identifier">future</span></code> handle.
+        </p>
+<p>
+          In <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2276.html" target="_top">N2276
+          - Thread Pools and Futures</a> Anthony William introduces <code class="computeroutput"><span class="identifier">launch_in_thread</span></code> and <code class="computeroutput"><span class="identifier">launch_in_pool</span></code>
+          function templates which evaluates a function asynchronously either in
+          a specific <code class="computeroutput"><span class="identifier">thread</span></code> or a
+          thread pool and returns a <code class="computeroutput"><span class="identifier">unique_future</span></code>
+          handle.
+        </p>
+<p>
+          In Boost.ThreadPool
+          Oliver Kowalke proposes a complete implementation of a thread <code class="computeroutput"><span class="identifier">pool</span></code> with a <code class="computeroutput"><span class="identifier">submit</span><span class="special">()</span></code> function which evaluates a function asynchronously
+          and returns a <code class="computeroutput"><span class="identifier">task</span></code> handle.
+        </p>
+<p>
+          Behind all these proposals there is a concept of asynchronous executor,
+          fork-like function and the asynchronous completion token handle.
+        </p>
+<div class="table">
+<a name="id4765459"></a><p class="title"><b>Table 1. AE/ACT/fork-like relationship</b></p>
+<table class="table" summary="AE/ACT/fork-like relationship">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                <span class="bold"><strong>Proposal</strong></span>
+              </p>
+              </th>
+<th>
+              <p>
+                <span class="bold"><strong>executor</strong></span>
+              </p>
+              </th>
+<th>
+              <p>
+                <span class="bold"><strong>fork-like</strong></span>
+              </p>
+              </th>
+<th>
+              <p>
+                <span class="bold"><strong>ACT handle</strong></span>
+              </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                Boost.Thread
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">thread</span></code> class
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">thread</span><span class="special">()</span></code>
+                constructor
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code>
+              </p>
+              </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Boost.ThreadPool
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span></code>
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">submit</span><span class="special">()</span></code>
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span></code>
+              </p>
+              </td>
+</tr>
+<tr>
+<td>
+              <p>
+                N2276
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code>
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">launch_in_thread</span><span class="special">()</span></code>
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code>
+              </p>
+              </td>
+</tr>
+<tr>
+<td>
+              <p>
+                N2276
+              </p>
+              </td>
+<td>
+              <p>
+                thread_pool
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">launch_in_pool</span><span class="special">()</span></code>
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code>
+              </p>
+              </td>
+</tr>
+<tr>
+<td>
+              <p>
+                N2185
+              </p>
+              </td>
+<td>
+              <p>
+                thread pool
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">fork</span><span class="special">()</span></code>
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code>
+              </p>
+              </td>
+</tr>
+<tr>
+<td>
+              <p>
+                N1833
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">threader</span></code>
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">thread</span><span class="special">()</span></code>
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">joiner</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code>
+              </p>
+              </td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>
+          The asynchronous completion token models can follow two interfaces, the
+          thread interface and the future interface. Some asynchronous completion
+          tokens handle allow to recover the result of the evaluation of the function,
+          others allow to manage the underlying thread of execution.
+        </p>
+<p>
+          It seems natural to make a generic <span class="underline">_fork</span>_
+          function that will evaluate a function asynchronously with respect to the
+          calling thread and returns an ACT handle. The following meta-function associates
+          an ACT handle to an asynchronous executor.
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">asynchronous_completion_token</span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">handle</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+          The result of forking a nullary function by an asynchronous executor is
+          given by the metafunction result_of::fork<AE,F>
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">__c_fork__</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span> <span class="identifier">result_type</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="identifier">result_type</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<p>
+          The default implementation of fork delegates on fork asynchronous executor
+          function.
+        </p>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span> <span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">fork</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span> <span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">ae</span><span class="special">.</span><span class="identifier">fork</span><span class="special">(</span><span class="identifier">fn</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          Forking n-ary functions rely on the nullary version and bind.
+        </p>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">An</span> <span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span>
+            <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">A1</span><span class="special">,...,</span> <span class="identifier">An</span><span class="special">)>::</span><span class="identifier">type</span> <span class="special">>::</span><span class="identifier">type</span>
+<span class="identifier">fork</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">An</span> <span class="identifier">an</span> <span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">ae</span><span class="special">.</span><span class="identifier">fork</span><span class="special">(</span> <span class="identifier">bind</span><span class="special">(</span> <span class="identifier">fn</span><span class="special">,</span> <span class="identifier">a1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">an</span> <span class="special">)</span> <span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          We can define a basic_threader which just returns a new thread as follows:
+        </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">basic_threader</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">)</span> <span class="special">{</span>
+        <span class="identifier">thread</span> <span class="identifier">th</span><span class="special">(</span><span class="identifier">f</span><span class="special">);</span>
+        <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move</span><span class="special">(</span><span class="identifier">th</span><span class="special">);</span>
+    <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+          The library includes also a launcher class that creates a thread and returns
+          a unique_future when forking
+        </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">launcher</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+    <span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">)</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span> <span class="identifier">result_type</span><span class="special">;</span>
+        <span class="identifier">packaged_task</span><span class="special"><</span><span class="identifier">result_type</span><span class="special">></span> <span class="identifier">tsk</span><span class="special">(</span><span class="identifier">f</span><span class="special">);</span>
+        <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">result_type</span><span class="special">></span> <span class="identifier">res</span> <span class="special">=</span> <span class="identifier">tsk</span><span class="special">.</span><span class="identifier">get_future</span><span class="special">();</span>
+        <span class="identifier">thread</span> <span class="identifier">th</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move</span><span class="special">(</span><span class="identifier">tsk</span><span class="special">));</span>
+        <span class="keyword">return</span> <span class="identifier">res</span><span class="special">;</span>
+    <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+          and a shared_launcher class that creates a thread and returns a shared_future
+          when forking.
+        </p>
+<p>
+          Given the sequential example:
+        </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">f</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n</span> <span class="special">)</span>
+<span class="special">{</span>
+    <span class="keyword">double</span> <span class="identifier">r</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span>
+
+    <span class="keyword">for</span><span class="special">(</span> <span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><=</span> <span class="identifier">n</span><span class="special">;</span> <span class="special">++</span><span class="identifier">i</span> <span class="special">)</span>
+    <span class="special">{</span>
+        <span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">1.0</span> <span class="special">/</span> <span class="identifier">i</span><span class="special">;</span>
+        <span class="identifier">r</span> <span class="special">+=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pow</span><span class="special">(</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">a</span> <span class="special">);</span>
+    <span class="special">}</span>
+
+    <span class="keyword">return</span> <span class="identifier">r</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="keyword">double</span> <span class="identifier">m1</span> <span class="special">=</span> <span class="identifier">f</span><span class="special">(</span> <span class="number">1.0</span><span class="special">,</span> <span class="number">1000000</span> <span class="special">);</span>
+    <span class="keyword">double</span> <span class="identifier">m2</span> <span class="special">=</span> <span class="identifier">f</span><span class="special">(</span> <span class="number">1.0</span><span class="special">,</span> <span class="number">5000000</span> <span class="special">);</span>
+    <span class="keyword">double</span> <span class="identifier">m3</span> <span class="special">=</span> <span class="identifier">f</span><span class="special">(</span> <span class="number">2.2</span><span class="special">,</span> <span class="number">1000000</span> <span class="special">);</span>
+    <span class="keyword">double</span> <span class="identifier">m4</span> <span class="special">=</span> <span class="identifier">f</span><span class="special">(</span> <span class="number">2.2</span><span class="special">,</span> <span class="number">5000000</span> <span class="special">);</span>
+
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">m2</span> <span class="special">-</span> <span class="identifier">m1</span> <span class="special">+</span> <span class="identifier">m3</span> <span class="special">-</span> <span class="identifier">m4</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+          The library allows a programmer to switch to parallel execution as follows:
+        </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="identifier">launcher</span> <span class="identifier">l</span><span class="special">;</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">fm1</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork</span><span class="special">(</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="number">1.0</span><span class="special">,</span> <span class="number">1000000</span> <span class="special">);</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">fm2</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork</span><span class="special">(</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="number">1.0</span><span class="special">,</span> <span class="number">5000000</span> <span class="special">);</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">fm3</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork</span><span class="special">(</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="number">2.2</span><span class="special">,</span> <span class="number">1000000</span> <span class="special">);</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">fm4</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork</span><span class="special">(</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="number">2.2</span><span class="special">,</span> <span class="number">5000000</span> <span class="special">);</span>
+
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fm2</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special">-</span> <span class="identifier">fm1</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">fm3</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special">-</span> <span class="identifier">fm4</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+          The question now is how we can adapt the example to an existing asynchronous
+          executor such as the Boost.ThreadPool library. We need to specialize the
+          template class asynchronous_completion_token to state which is the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code> associate
+          to the <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span></code>.
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Channel</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">>,</span><span class="identifier">T</span><span class="special">></span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span>
+</pre>
+<p>
+          and also to specialize the fork function as the default one requires a
+          fork member function and <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span></code>
+          provides a <code class="computeroutput"><span class="identifier">submit</span><span class="special">()</span></code>
+          member function`
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+
+<span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">Channel</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span> <span class="special">></span>
+<span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">>,</span> <span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span>
+<span class="identifier">fork</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">>,</span><span class="identifier">F</span><span class="special">>(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">>&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span> <span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">ae</span><span class="special">.</span><span class="identifier">submit</span><span class="special">(</span><span class="identifier">fn</span><span class="special">);</span>
+<span class="special">}</span>
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+          Evidently these specializations must be done on the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span></code>
+          namespace.
+        </p>
+<p>
+          As the preceding is ilegal in C++03 we need to use an auxiliary class to
+          define the default behaviour of the fork function
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+    <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span> <span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">fork</span> <span class="special">{</span>
+        <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span><span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span> <span class="special">)</span> <span class="special">{</span>
+            <span class="keyword">return</span> <span class="identifier">ae</span><span class="special">.</span><span class="identifier">fork</span><span class="special">(</span><span class="identifier">fn</span><span class="special">);</span>
+        <span class="special">}</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+<span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span> <span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span>
+<span class="identifier">fork</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span> <span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">partial_specialization_workaround</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">>::</span><span class="identifier">apply</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span><span class="identifier">fn</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          And specialize partially the partial_specialization_workaround::fork class
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">Channel</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span> <span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">fork</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">>,</span><span class="identifier">F</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">>,</span> <span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span>
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">>&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">ae</span><span class="special">.</span><span class="identifier">submit</span><span class="special">(</span><span class="identifier">fn</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+<span class="special">}}</span>
+</pre>
+<p>
+          Note that only the <span class="underline">_fork</span>_ function
+          needs to be specialized. The library provides the other overloadings.
+        </p>
+<p>
+          We can write the preceding main function in a more generic way
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">></span>
+<span class="keyword">void</span> <span class="keyword">do</span><span class="special">(</span><span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">)</span>
+<span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="keyword">int</span><span class="special">(*)(</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">auto_type</span><span class="special">;</span>
+    <span class="identifier">auto_type</span> <span class="identifier">fm1</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="number">1.0</span><span class="special">,</span> <span class="number">1000000</span> <span class="special">);</span>
+    <span class="identifier">auto_type</span> <span class="identifier">fm2</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="number">1.0</span><span class="special">,</span> <span class="number">5000000</span> <span class="special">);</span>
+    <span class="identifier">auto_type</span> <span class="identifier">fm3</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="number">2.2</span><span class="special">,</span> <span class="number">1000000</span> <span class="special">);</span>
+    <span class="identifier">auto_type</span> <span class="identifier">fm4</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="number">2.2</span><span class="special">,</span> <span class="number">5000000</span> <span class="special">);</span>
+
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fm2</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special">-</span> <span class="identifier">fm1</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">fm3</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special">-</span> <span class="identifier">fm4</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="identifier">launcher</span> <span class="identifier">ae</span><span class="special">;</span>
+    <span class="keyword">do</span><span class="special">(</span><span class="identifier">ae</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          and we can switch from using the launcher or the tp::pool just by changing
+          one line
+        </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><></span> <span class="identifier">ae</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">poolsize</span><span class="special">(</span><span class="number">6</span><span class="special">))</span>
+    <span class="keyword">do</span><span class="special">(</span><span class="identifier">ae</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          Instead of defining a type, the user can make use of BOOST_AUTO once the
+          associated files included on the threadpool sub-directory.
+        </p>
+<pre class="programlisting"><span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">fm1</span><span class="special">,</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="number">1.0</span><span class="special">,</span> <span class="number">1000000</span> <span class="special">));</span>
+</pre>
+<p>
+          As a extreme case the library provides a immediate executor which allows
+          to execute synchronously the function on the current thread. This can be
+          used for test purposes. Note that this executor can not be used when there
+          are dependencies between the children <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+          and the parent <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+        </p>
+<p>
+          The library allows also to fork several functions at one time
+        </p>
+<pre class="programlisting"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)()>::</span><span class="identifier">type</span> <span class="identifier">handles</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">g</span><span class="special">,</span> <span class="identifier">h</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">get</span><span class="special"><</span><span class="number">1</span><span class="special">>(</span><span class="identifier">res</span><span class="special">).</span><span class="identifier">get</span><span class="special">()</span> <span class="special">-</span> <span class="identifier">get</span><span class="special"><</span><span class="number">0</span><span class="special">>(</span><span class="identifier">res</span><span class="special">).</span><span class="identifier">get</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">get</span><span class="special"><</span><span class="number">2</span><span class="special">>(</span><span class="identifier">res</span><span class="special">).</span><span class="identifier">get</span><span class="special">()</span> <span class="special"><&
lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          The result of the fork_all operation is a fusion tuple of asynchronous
+          completion token handles. The user can apply any fusion algorithm on this
+          tuple as for example
+        </p>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">b</span> <span class="special">=</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">none</span><span class="special">(</span><span class="identifier">handles</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">interruption_requested</span><span class="special">());</span>
+</pre>
+<p>
+          The asynchronous completion token models follows two interfaces, the thread
+          interface and the unique_/shared_future interface.
+        </p>
+<p>
+          To make common tasks easier the library provides some functors in the name
+          space fct: for the thread interface as
+        </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            fct::join
+          </li>
+<li>
+            fct::join_until
+          </li>
+<li>
+            fct::join_for
+          </li>
+<li>
+            fct::detach
+          </li>
+<li>
+            fct::interrupt
+          </li>
+<li>
+            fct::interrupt_requested
+          </li>
+</ul></div>
+<p>
+          and for the future operations as
+        </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            fct::get
+          </li>
+<li>
+            fct::wait
+          </li>
+<li>
+            fct::wait_until
+          </li>
+<li>
+            fct::wait_for
+          </li>
+<li>
+            fct::is_ready
+          </li>
+<li>
+            fct::has_value
+          </li>
+<li>
+            fct::has_exception
+          </li>
+</ul></div>
+<p>
+          Here is an example for get:
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+    <span class="keyword">struct</span> <span class="identifier">get</span> <span class="special">{</span>
+        <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+        <span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">::</span><span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">{</span>
+            <span class="keyword">return</span> <span class="identifier">t</span><span class="special">.</span><span class="identifier">get</span><span class="special">();</span>
+        <span class="special">}</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<p>
+          In addition the library provides some non member functions that are the
+          result of applying these functors to the tuple using a fusion algorithm:
+        </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            join_all
+          </li>
+<li>
+            join_all_until
+          </li>
+<li>
+            join_all_for
+          </li>
+<li>
+            detach_all
+          </li>
+<li>
+            interrupt_all
+          </li>
+<li>
+            interrupt_requested_on_all
+          </li>
+<li>
+            get_all
+          </li>
+<li>
+            wait_all
+          </li>
+<li>
+            wait_all_until
+          </li>
+<li>
+            wait_all_for
+          </li>
+<li>
+            are_all_ready
+          </li>
+<li>
+            have_all_value
+          </li>
+<li>
+            have_all_exception
+          </li>
+</ul></div>
+<p>
+          Next follows how get_all is defined.
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">MovableTuple</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_all</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">type</span>
+<span class="identifier">get_all</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">transform</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">get</span><span class="special">());</span>
+<span class="special">}</span>
+</pre>
+<p>
+          The library defines in a systematic way the result_of of a function as
+          a metafunction having the same name as the function on the namespace result_of,
+          as the Boost.Fusion library does.
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">get_all</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">transform</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">get</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<p>
+          So the user can do the following
+        </p>
+<pre class="programlisting"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)()>::</span><span class="identifier">type</span> <span class="identifier">res</span> <span class="special">=</span> 
+    <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">g</span><span class="special">,</span> <span class="identifier">h</span><span class="special">);</span>
+<span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_all</span><span class="special"><</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)()>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">values</span> <span class="special">=</span> 
+    <span class="identifier">basync</span><span class="special">::</span><span class="identifier">get_all</span><span class="special">(</span><span class="identifier">handles</span><span class="special">);</span>
+</pre>
+<p>
+          or using a typedef
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)()>::</span><span class="identifier">type</span> <span class="identifier">auto_type</span><span class="special">;</span>
+<span class="identifier">auto_type</span> <span class="identifier">handles</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">g</span><span class="special">,</span> <span class="identifier">h</span><span class="special">);</span>
+<span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_all</span><span class="special"><</span><span class="identifier">auto_type</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">values</span><span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">get_all</span><span class="special">(</span><span class="identifier">handles</span><span class="special">);</span>
+</pre>
+<p>
+          Note that the notation can be shortened by using the C++0x auto keyword.
+        </p>
+<pre class="programlisting"><span class="keyword">auto</span> <span class="identifier">res</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">g</span><span class="special">,</span> <span class="identifier">h</span><span class="special">);</span>
+<span class="keyword">auto</span> <span class="identifier">values</span> <span class="special">=</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">get_all</span><span class="special">(</span><span class="identifier">handles</span><span class="special">);</span>
+</pre>
+<p>
+          or using BOOST_AUTO
+        </p>
+<pre class="programlisting"><span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">res</span><span class="special">,</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">g</span><span class="special">,</span> <span class="identifier">h</span><span class="special">));</span>
+<span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">values</span><span class="special">,</span> <span class="identifier">basync</span><span class="special">::</span><span class="identifier">get_all</span><span class="special">(</span><span class="identifier">handles</span><span class="special">));</span>
+</pre>
+<p>
+          Last but not least the library provides also some sugaring functions like
+          wait_for_all that forks and wait for the completion of all the functions.
+        </p>
+<pre class="programlisting"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)()>::</span><span class="identifier">type</span> <span class="identifier">res</span> <span class="special">=</span> 
+    <span class="identifier">basync</span><span class="special">::</span><span class="identifier">wait_for_all</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">g</span><span class="special">,</span> <span class="identifier">h</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">get</span><span class="special"><</span><span class="number">1</span><span class="special">>(</span><span class="identifier">res</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">get</span><span class="special"><</span><span class="number">0</span><span class="special">>(</span><span class="identifier">res</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">get</span><span class="special"><</span><span class="number">2</span><span class="special">>(</span><span class="identifier">res</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          and wait_for_any, which works only with functions that return the same
+          type or are convertible to the same type, and return the index and the
+          value of any of the completed functions.
+        </p>
+<pre class="programlisting"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_any</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)(),</span> <span class="keyword">int</span><span class="special">(*)()>::</span><span class="identifier">type</span> <span class="identifier">res</span> <span class="special">=</span> 
+    <span class="identifier">basync</span><span class="special">::</span><span class="identifier">wait_for_any</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">g</span><span class="special">,</span> <span class="identifier">h</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"function "</span> <span class="special"><<</span> <span class="identifier">res</span><span class="special">.</span><span class="identifier">first</span> 
+    <span class="special"><<</span> <span class="string">" finshed first with result="</span> <span class="special"><<</span> <span class="identifier">res</span><span class="special">.</span><span class="identifier">second</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          The current implementation use the wait_for_any function so any AE must
+          provide a way to get a unique|shared_future from its <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+        </p>
+<p>
+          The library defines a functor allowing the user to specialize it
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">get_future</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">typename</span> <span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span>
+    <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">get_future</span><span class="special">();</span> <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+          Resuming a simple way to define a new AsynchronousExecutor is to define
+          a class as
+        </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">AsynchronousExecutor</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">implementation</span><span class="special">-</span><span class="identifier">specific</span><span class="special">-</span><span class="identifier">type</span><span class="special">-</span><span class="identifier">modeling</span><span class="special">-</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">ACT</span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">handle</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.overview.motivation.threader_joiner"></a>Threader/Joiner
+</h4></div></div></div>
+<p>
+          See the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1883.pdf" target="_top">N1833
+          - Preliminary Threading Library Proposal for TR2</a> where Kevlin Henney
+          introduces the concept of threader as an asynchronous executor and a function
+          thread that evaluates a function asynchronously and returns an asynchronous
+          completion token joiner, able to join but also to get the value of the
+          function result.
+        </p>
+<p>
+          The main specificity is that here we make a difference between unique_joiner
+          (move-only) and shared_joiner and as consequence unique_threader and shared_threader.
+        </p>
+<p>
+          The second specificity concerns the fact joiners can detach, terminate,
+          ... on destruction.
+        </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../overview.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../users_guide.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/reference.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/reference.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,94 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Reference</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../index.html" title="Toward Boost Async">
+<link rel="up" href="../index.html" title="Toward Boost Async">
+<link rel="prev" href="users_guide/glossary.html" title=" Glossary">
+<link rel="next" href="reference/concepts.html" title="Concepts">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="users_guide/glossary.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference/concepts.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="toward_boost_async.reference"></a> Reference
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Concepts</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts">Asynchronous
+        Completion Token Concepts</a></span></dt>
+<dt><span class="section"><a href="reference/concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts">Asynchronous
+        Executors Concepts</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference/ae_act_framework_reference.html">AE/ACT
+      Framework Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.act_traits_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">act_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations">AE
+        operations</a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.algorithm_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations">Future
+        based ACT operations</a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations">Thread
+        based ACT operations</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html">AE/ACT
+      Models Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.future_traits_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">future_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">immediate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.basic_threader_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">basic_threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">launcher</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.scheduler_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">scheduler</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_futures_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">future</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_launcher_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">launcher</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_threader_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_basic_threaderr_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">basic_threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_scheduler_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">scheduler</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="reference/ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.asynchronous_executor_decorator_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">asynchronous_executor_decorator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+</dl></dd>
+</dl></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="users_guide/glossary.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference/concepts.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/reference/ae_act_framework_reference.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/reference/ae_act_framework_reference.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,2965 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>AE/ACT
+      Framework Reference</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../reference.html" title=" Reference">
+<link rel="prev" href="concepts.html" title="Concepts">
+<link rel="next" href="ae_act_models_reference.html" title="AE/ACT
+      Models Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="concepts.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="ae_act_models_reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference"></a><a href="ae_act_framework_reference.html" title="AE/ACT
+      Framework Reference">AE/ACT
+      Framework Reference</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.act_traits_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">act_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations">AE
+        operations</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork_after</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">wait_for_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_any_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">wait_for_any</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.algorithm_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations">Future
+        based ACT operations</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_until_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.is_ready_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">is_ready</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.has_value_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">has_value</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.has_exception_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">has_exception</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_all_until_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_all_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">get_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.are_all_ready_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">are_all_ready</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.have_all_value_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">have_all_value</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.have_all_exception_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">have_some_exception</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations">Thread
+        based ACT operations</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.detach_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">detach</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.joinable_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">joinable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_until_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interrupt_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interrupt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interruption_requested_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interruption_requested</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.detach_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">detach_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.are_all_joinable_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">are_all_joinable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_all_until_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_all_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interrupt_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interrupt_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interruption_requested_on_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interruption_requested_on_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+</dl></dd>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.act_traits_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.act_traits_hpp" title="
+        Header <boost/async/act_traits.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">act_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<p>
+          Includes all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+          and <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+          traits.
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">act_traits</span><span class="special">;</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">is_movable</span><span class="special">;</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_future_if</span><span class="special">;</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_thread_if</span><span class="special">;</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">asynchronous_completion_token</span><span class="special">;</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">get_future</span><span class="special">;</span>
+
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations" title="AE
+        operations">AE
+        operations</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork_after</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">wait_for_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_any_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">wait_for_any</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_hpp" title="
+          Header <boost/async/fork.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_hpp.metafunction__result_of__fork_ae_f___">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">></span> </code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_hpp.non_member_function__fork___">Non
+            member function <code class="computeroutput"><span class="identifier">fork</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">An</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">fork</span><span class="special">;</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">A1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">An</span><span class="special">)></span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">An</span> <span class="special">></span>
+    <span class="keyword">typename</span>  <span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> 
+        <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">A1</span><span class="special">,...,</span> <span class="identifier">An</span><span class="special">)>::</span><span class="identifier">type</span> <span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">fork</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">An</span> <span class="identifier">an</span> <span class="special">);</span>
+
+
+    <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">An</span> <span class="special">></span>
+    <span class="keyword">typename</span>  <span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">default_asynchronous_executor</span><span class="special">,</span> 
+        <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">A1</span><span class="special">,...,</span> <span class="identifier">An</span><span class="special">)>::</span><span class="identifier">type</span> <span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">fork</span><span class="special">(</span> <span class="identifier">F</span> <span class="identifier">fn</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">An</span> <span class="identifier">an</span> <span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_hpp.metafunction__result_of__fork_ae_f___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_hpp.metafunction__result_of__fork_ae_f___" title="Metafunction
+            result_of::fork<AE,F> ">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">></span> </code></a>
+</h6></div></div></div>
+<p>
+              A metafunction returning the result type of applying <span class="underline">_fork</span>_
+              to an asynchronous executor and a Nullary functor.
+            </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">An</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">fork</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">A1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">An</span><span class="special">)></span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<div class="table">
+<a name="id4830920"></a><p class="title"><b>Table 2. fork Parameters</b></p>
+<table class="table" summary="fork Parameters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    <span class="bold"><strong>Parameter</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Requirement</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Description</strong></span>
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AE</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">F</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of n-ary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Ak</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of n-ary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    n-ary function argument type for argument k
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  result_of::fork<AE,F,A1,...,An>::type
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  AE::handle<typename result_of<F(A1,...,An)> >::type
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_hpp.non_member_function__fork___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_hpp.non_member_function__fork___" title="Non
+            member function fork()">Non
+            member function <code class="computeroutput"><span class="identifier">fork</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span> <span class="special">,</span> <span class="special">...</span> <span class="keyword">typename</span> <span class="identifier">An</span> <span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">,</span> <span class="identifier">A1</span><span class="special">,</span> <span class="identifier">An</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span>
+<span class="identifier">fork</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span> <span class="special">,</span> <span class="special">...,</span> <span class="identifier">An</span> <span class="identifier">an</span> <span class="special">);</span>
+</pre>
+<div class="table">
+<a name="id4831417"></a><p class="title"><b>Table 3. fork Parameters</b></p>
+<table class="table" summary="fork Parameters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    <span class="bold"><strong>Parameter</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Requirement</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Description</strong></span>
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AE</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">F</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of n-ary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Ak</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of n-ary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    n-ary function argument type for argument k
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Requires:</span></dt>
+<dd><p>
+                  The expression fn(a1, ..., an) must be valid and have a type convertible
+                  to R, where R is typename result_of<F(A1, ..., An)>::type..
+                </p></dd>
+<dt><span class="term">Efect:</span></dt>
+<dd><p>
+                  Request the <code class="computeroutput"><span class="identifier">AE</span></code>
+                  to creates a thread of execution for the function <code class="computeroutput"><span class="identifier">fn</span></code> Request the asynchronous evaluation
+                  the expression <code class="computeroutput"><span class="identifier">fn</span><span class="special">(</span><span class="identifier">a1</span><span class="special">,</span> <span class="special">...,</span>
+                  <span class="identifier">an</span><span class="special">)</span></code>
+                  with respect to the calling thread to the asynchronous executor
+                  <code class="computeroutput"><span class="identifier">ae</span></code> and places its
+                  result in an object h of type AE::handle<R>::type as if by
+                  using h.set_value( fn(a1, ..., an) ). If the expression fn() throws
+                  an exception e, places e into h as if by using h.set_exception(
+                  current_exception() ).
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  the AE handle h.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp" title="
+          Header <boost/async/fork_after.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork_after</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.partial_specialization_template_class__act_traits_act_wrapper_act___">Partial
+            Specialization Template Class <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">act_wrapper</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.partial_specialization_template_class__is_movable_act_wrapper_act____">Partial
+            Specialization Template Class <code class="computeroutput"><span class="identifier">is_movable</span><span class="special"><</span><span class="identifier">act_wrapper</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> <span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.template_class__act_wrapper___">Template
+            Class <code class="computeroutput"><span class="identifier">act_wrapper</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.metafunction__result_of__fork_ae_f___">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">></span> </code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.static_member_function__partial_specialization_workaround__fork_after____apply___">Static
+            Member Function <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span><span class="special">::</span><span class="identifier">fork_after</span><span class="special"><>::</span><span class="identifier">apply</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.non_member_function__fork_after___">Non
+            member function <code class="computeroutput"><span class="identifier">fork_after</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.non_member_function__after_completion_fork___">Non
+            member function <code class="computeroutput"><span class="identifier">after_completion_fork</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">fork_after</span></code>
+            which request the asynchronous evaluation a function with respect to
+            the calling thread to the asynchronous executor <code class="computeroutput"><span class="identifier">ae</span></code>
+            after the completion of some <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            The result is an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            wrapping the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            associated to the <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>.
+          </p>
+<p>
+            The default implementation forks a helper task which waits the completion
+            of the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            's only then evaluates the function. A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code> could want to
+            specialize the <code class="computeroutput"><span class="identifier">fork_after</span></code>
+            free function. As for the moment we can not partially specialize a function
+            a trick is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">fork_after</span></code>
+            member function <code class="computeroutput"><span class="identifier">fork_after</span></code>
+            calls to the static operation <code class="computeroutput"><span class="identifier">apply</span></code>
+            on a class with the same name in the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">act_wrapper</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> <span class="special">>;</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">is_movable</span><span class="special"><</span><span class="identifier">act_wrapper</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">is_movable</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>{};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">act_wrapper</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> <span class="special">{};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">act_wrapper</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>{};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">act_wrapper</span><span class="special">;</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">fork_after</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">act_wrapper</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">D</span> <span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">fork_after</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_after</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span>
+            <span class="identifier">apply</span><span class="special">(</span><span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span><span class="special">,</span> <span class="identifier">D</span><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+    
+    <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">D</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_after</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">fork_after</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span><span class="special">,</span> <span class="identifier">D</span><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
+
+    <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">D</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">An</span>  <span class="special">></span>
+    <span class="identifier">act_wrapper</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">A1</span><span class="special">,...,</span> <span class="identifier">An</span><span class="special">)>::</span><span class="identifier">type</span> <span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
+    <span class="identifier">after_completion_fork</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">D</span><span class="special">&</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">An</span> <span class="identifier">an</span> <span class="special">);</span>
+
+
+<span class="special">}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.partial_specialization_template_class__act_traits_act_wrapper_act___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.partial_specialization_template_class__act_traits_act_wrapper_act___" title="Partial
+            Specialization Template Class act_traits<act_wrapper<ACT>>">Partial
+            Specialization Template Class <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">act_wrapper</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>></span></code></a>
+</h6></div></div></div>
+<p>
+              act_wrapper inherits the traits of its wrapped <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">act_wrapper</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>{};</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.partial_specialization_template_class__is_movable_act_wrapper_act____"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.partial_specialization_template_class__is_movable_act_wrapper_act____" title="Partial
+            Specialization Template Class is_movable<act_wrapper<ACT> >">Partial
+            Specialization Template Class <code class="computeroutput"><span class="identifier">is_movable</span><span class="special"><</span><span class="identifier">act_wrapper</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> <span class="special">></span></code></a>
+</h6></div></div></div>
+<p>
+              act_wrapper inherits the traits of its wrapped <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">is_movable</span><span class="special"><</span><span class="identifier">act_wrapper</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">is_movable</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>{};</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.template_class__act_wrapper___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.template_class__act_wrapper___" title="Template
+            Class act_wrapper<>">Template
+            Class <code class="computeroutput"><span class="identifier">act_wrapper</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">act_wrapper</span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">act_wrapper</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> <span class="special">>::</span><span class="identifier">move_dest_type</span> <span class="identifier">move_dest_type</span><span class="special">;</span>
+    <span class="identifier">act_wrapper</span><span class="special">();</span>
+    <span class="keyword">void</span> <span class="identifier">wait_initialized</span><span class="special">();</span>
+    <span class="keyword">void</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">other</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> <span class="identifier">other</span><span class="special">);</span>
+    
+    <span class="keyword">void</span> <span class="identifier">wait</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">wait_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span>
+    <span class="keyword">bool</span> <span class="identifier">wait_for</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span><span class="special">);</span>          
+    <span class="identifier">move_dest_type</span> <span class="identifier">get</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">is_ready</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">has_value</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">has_exception</span><span class="special">();</span>
+
+    <span class="keyword">void</span> <span class="identifier">detach</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">joinable</span><span class="special">();</span>
+    <span class="keyword">void</span> <span class="identifier">join</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">join_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span>
+    <span class="keyword">bool</span> <span class="identifier">join_for</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">interrupt</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">interruption_requested</span><span class="special">();</span>
+<span class="special">};</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.metafunction__result_of__fork_ae_f___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.metafunction__result_of__fork_ae_f___" title="Metafunction
+            result_of::fork<AE,F> ">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">></span> </code></a>
+</h6></div></div></div>
+<p>
+              A metafunction returning the result type of applying <code class="computeroutput"><span class="identifier">fork_after</span></code> to an asynchronous executor
+              and a Nullary functor.
+            </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">fork_after</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">act_wrapper</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<div class="table">
+<a name="id4834572"></a><p class="title"><b>Table 4. fork Parameters</b></p>
+<table class="table" summary="fork Parameters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    <span class="bold"><strong>Parameter</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Requirement</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Description</strong></span>
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AE</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">F</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of n-ary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  result_of::fork_after<AE,F>::type
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  act_wrapper<typename asynchronous_completion_token<AE, typename
+                  boost::result_of<F()>::type>::type>
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.static_member_function__partial_specialization_workaround__fork_after____apply___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.static_member_function__partial_specialization_workaround__fork_after____apply___" title="Static
+            Member Function partial_specialization_workaround::fork_after<>::apply()">Static
+            Member Function <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span><span class="special">::</span><span class="identifier">fork_after</span><span class="special"><>::</span><span class="identifier">apply</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+    <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">D</span> <span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">fork_after</span> <span class="special">{</span>
+        <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_after</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">apply</span><span class="special">(</span><span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span><span class="special">,</span> <span class="identifier">D</span><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.non_member_function__fork_after___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.non_member_function__fork_after___" title="Non
+            member function fork_after()">Non
+            member function <code class="computeroutput"><span class="identifier">fork_after</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">D</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_after</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F</span><span class="special">,</span><span class="identifier">D</span><span class="special">>::</span><span class="identifier">type</span>
+<span class="identifier">fork_after</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span><span class="special">,</span> <span class="identifier">D</span><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
+</pre>
+<div class="table">
+<a name="id4835249"></a><p class="title"><b>Table 5. fork Parameters</b></p>
+<table class="table" summary="fork Parameters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    <span class="bold"><strong>Parameter</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Requirement</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Description</strong></span>
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AE</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">F</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of n-ary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">D</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of a fusion <code class="computeroutput"><span class="identifier">Sequence</span></code>
+                    of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Dependent <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Requires:</span></dt>
+<dd><p>
+                  The expression fn() must be valid and have a type convertible to
+                  R, where R is typename result_of<F()>::type..
+                </p></dd>
+<dt><span class="term">Efect:</span></dt>
+<dd><p>
+                  Request the asynchronous evaluation the expression <code class="computeroutput"><span class="identifier">fn</span><span class="special">()</span></code>
+                  with respect to the calling thread to the asynchronous executor
+                  <code class="computeroutput"><span class="identifier">ae</span></code> after the completion
+                  of all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                  in <code class="computeroutput"><span class="identifier">d</span></code> and places
+                  its result in an object h of type AE::handle<R>::type as
+                  if by using h.set_value( fn() ). If the expression fn() throws
+                  an exception e, places e into h as if by using h.set_exception(
+                  current_exception() ).
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  the AE handle h.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.non_member_function__after_completion_fork___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_after_hpp.non_member_function__after_completion_fork___" title="Non
+            member function after_completion_fork()">Non
+            member function <code class="computeroutput"><span class="identifier">after_completion_fork</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">D</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">An</span>  <span class="special">></span>
+<span class="identifier">act_wrapper</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">A1</span><span class="special">,...,</span> <span class="identifier">An</span><span class="special">)>::</span><span class="identifier">type</span> <span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
+<span class="identifier">after_completion_fork</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">D</span><span class="special">&</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">An</span> <span class="identifier">an</span> <span class="special">);</span>
+</pre>
+<div class="table">
+<a name="id4835911"></a><p class="title"><b>Table 6. fork Parameters</b></p>
+<table class="table" summary="fork Parameters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    <span class="bold"><strong>Parameter</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Requirement</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Description</strong></span>
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AE</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">D</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of a fusion <code class="computeroutput"><span class="identifier">Sequence</span></code>
+                    of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Dependent <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">F</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of n-ary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Ak</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of n-ary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    n-ary function argument type for argument k
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Requires:</span></dt>
+<dd><p>
+                  The expression fn(a1, ..., an) must be valid and have a type convertible
+                  to R, where R is typename result_of<Fn()>::type..
+                </p></dd>
+<dt><span class="term">Efect:</span></dt>
+<dd><p>
+                  Request the <code class="computeroutput"><span class="identifier">AE</span></code>
+                  to creates a thread of execution for the function <code class="computeroutput"><span class="identifier">fn</span></code> Request the asynchronous evaluation
+                  the expression <code class="computeroutput"><span class="identifier">fn</span><span class="special">(</span><span class="identifier">a1</span><span class="special">,</span> <span class="special">...,</span>
+                  <span class="identifier">an</span><span class="special">)</span></code>
+                  with respect to the calling thread to the asynchronous executor
+                  <code class="computeroutput"><span class="identifier">ae</span></code> after the completion
+                  of all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                  in <code class="computeroutput"><span class="identifier">d</span></code> and places
+                  its result in an object h of type AE::handle<R>::type as
+                  if by using h.set_value( fn(a1, ..., an) ). If the expression fn()
+                  throws an exception e, places e into h as if by using h.set_exception(
+                  current_exception() ).
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  the AE handle h.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_all_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_all_hpp" title="
+          Header <boost/async/fork_all.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_all_hpp.metafunction__result_of__fork_all_ae_f1_______fn___">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> </code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_all_hpp.non_member_function__fork_all___">Non
+            member function <code class="computeroutput"><span class="identifier">fork_all</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">fork_all</span><span class="special">;</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">fork_all</span> <span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> <span class="special">>{</span>
+            <span class="keyword">typedef</span>  <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span>
+                <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F1</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
+                <span class="special">...</span>
+                <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">Fn</span><span class="special">>::</span><span class="identifier">type</span>
+            <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span>  <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">fork_all</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F1</span> <span class="identifier">f1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span> <span class="identifier">fn</span> <span class="special">);</span>
+
+    <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span>  <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special"><</span><span class="identifier">default_asynchronous_executor</span><span class="special">,</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">fork_all</span><span class="special">(</span> <span class="identifier">F1</span> <span class="identifier">f1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span> <span class="identifier">fn</span> <span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_all_hpp.metafunction__result_of__fork_all_ae_f1_______fn___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_all_hpp.metafunction__result_of__fork_all_ae_f1_______fn___" title="Metafunction
+            result_of::fork_all<AE,F1, ..., Fn> ">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> </code></a>
+</h6></div></div></div>
+<p>
+              A metafunction returning the result type of applying fork_all to an
+              asynchronous executor and n Nullary functors.
+            </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">fork_all</span><span class="special">;</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">fork_all</span> <span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> <span class="special">>{</span>
+        <span class="keyword">typedef</span>  <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span>
+            <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F1</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
+            <span class="special">...</span>
+            <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">Fn</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<div class="table">
+<a name="id4837625"></a><p class="title"><b>Table 7. fork_all Parameters</b></p>
+<table class="table" summary="fork_all Parameters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    <span class="bold"><strong>Parameter</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Requirement</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Description</strong></span>
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AE</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of <code class="computeroutput"><span class="identifier">AsynchrousExecutor</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Fk</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of nullary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F1</span><span class="special">,...,</span><span class="identifier">Fn</span><span class="special">>::</span><span class="identifier">type</span></code>
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  a fusion tuple of the result of forking each <code class="computeroutput"><span class="identifier">Fk</span></code>
+                  by the <code class="computeroutput"><span class="identifier">AE</span></code>
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_all_hpp.non_member_function__fork_all___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.fork_all_hpp.non_member_function__fork_all___" title="Non
+            member function fork_all()">Non
+            member function <code class="computeroutput"><span class="identifier">fork_all</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span>  <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 
+<span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span>
+<span class="identifier">fork_all</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F1</span> <span class="identifier">f1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span> <span class="identifier">fn</span> <span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span>  <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 
+<span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special"><</span><span class="identifier">default_asynchronous_executor</span><span class="special">,</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">>::</span><span class="identifier">type</span>
+<span class="identifier">fork_all</span><span class="special">(</span> <span class="identifier">F1</span> <span class="identifier">f1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span> <span class="identifier">fn</span> <span class="special">);</span>
+</pre>
+<div class="table">
+<a name="id4838288"></a><p class="title"><b>Table 8. fork Parameters</b></p>
+<table class="table" summary="fork Parameters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    <span class="bold"><strong>Parameter</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Requirement</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Description</strong></span>
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AE</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of <code class="computeroutput"><span class="identifier">AsynchrousExecutor</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Fk</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of nullary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  a fusion tuple of the result of forking each <code class="computeroutput"><span class="identifier">fk</span></code>
+                  by the <code class="computeroutput"><span class="identifier">ae</span></code>
+                </p></dd>
+<dt><span class="term">Efect:</span></dt>
+<dd><p>
+                  Request the <code class="computeroutput"><span class="identifier">AE</span></code>
+                  to creates a n thread of execution one for the function <code class="computeroutput"><span class="identifier">fk</span></code>.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_all_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_all_hpp" title="
+          Header <boost/async/wait_for_all.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">wait_for_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_all_hpp.metafunction__result_of__wait_for_all_ae_f1_______fn___">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> </code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_all_hpp.non_member_function__wait_for_all_">Non
+            member function <code class="computeroutput"><span class="identifier">wait_for_all</span></code></a></span></dt>
+</dl></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">wait_for_all</span> <span class="special">{</span>
+            <span class="keyword">typedef</span>  <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span>
+                <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F1</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">,</span>
+                <span class="special">...</span>
+                <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">Fn</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">,</span>
+            <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span>  <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">wait_for_all</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F1</span> <span class="identifier">f1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span> <span class="identifier">fn</span> <span class="special">);</span>
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_all_hpp.metafunction__result_of__wait_for_all_ae_f1_______fn___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_all_hpp.metafunction__result_of__wait_for_all_ae_f1_______fn___" title="Metafunction
+            result_of::wait_for_all<AE,F1, ..., Fn> ">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> </code></a>
+</h6></div></div></div>
+<p>
+              A metafunction returning the result type of applying get_all to a Sequence
+              of asynchronous executor handles.
+            </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">wait_for_all</span> <span class="special">{</span>
+        <span class="keyword">typedef</span>  <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span>
+            <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F1</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">,</span>
+            <span class="special">...</span>
+            <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">Fn</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">,</span>
+        <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<div class="table">
+<a name="id4839349"></a><p class="title"><b>Table 9. wait_for_all Parameters</b></p>
+<table class="table" summary="wait_for_all Parameters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    <span class="bold"><strong>Parameter</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Requirement</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Description</strong></span>
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AE</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of <code class="computeroutput"><span class="identifier">AsynchrousExecutor</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Fk</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of nullary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span>
+                  <span class="identifier">F1</span><span class="special">,</span>
+                  <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">>::</span><span class="identifier">type</span></code>
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  a fusion tuple of the result of applying get to each one of the
+                  asynchronous executors handles resulting of forking each function
+                  <code class="computeroutput"><span class="identifier">Fk</span></code> by <code class="computeroutput"><span class="identifier">AE</span></code>
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_all_hpp.non_member_function__wait_for_all_"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_all_hpp.non_member_function__wait_for_all_" title="Non
+            member function wait_for_all">Non
+            member function <code class="computeroutput"><span class="identifier">wait_for_all</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span>  <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 
+<span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">>::</span><span class="identifier">type</span>
+<span class="identifier">wait_for_all</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F1</span> <span class="identifier">f1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span> <span class="identifier">fn</span> <span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  a fusion tuple of the result of applying get to each one of the
+                  asynchronous executors handles resulting of forking each function
+                  <code class="computeroutput"><span class="identifier">fk</span></code> by <code class="computeroutput"><span class="identifier">ae</span></code>.
+                </p></dd>
+<dt><span class="term">Effect:</span></dt>
+<dd><p>
+                  Request the <code class="computeroutput"><span class="identifier">AE</span></code>
+                  to creates a n thread of execution one for the function <code class="computeroutput"><span class="identifier">fk</span></code> and blocks until all the AE
+                  handles are ready.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_any_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_any_hpp" title="
+          Header <boost/async/wait_for_any.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">wait_for_any</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_any_hpp.metafunction__result_of__wait_for_all_ae_f1_______fn___">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> </code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_any_hpp.non_member_function__wait_for_any_">Non
+            member function <code class="computeroutput"><span class="identifier">wait_for_any</span></code></a></span></dt>
+</dl></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">wait_for_any</span> <span class="special">{</span>
+            <span class="comment">// requires typename result_of<F1()>::type == typename result_of<Fk()>::type
+</span>            <span class="keyword">typedef</span>  <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">unsigned</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F1</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span>  <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_any</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">wait_for_any</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F1</span> <span class="identifier">f1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span> <span class="identifier">fn</span> <span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_any_hpp.metafunction__result_of__wait_for_all_ae_f1_______fn___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_any_hpp.metafunction__result_of__wait_for_all_ae_f1_______fn___" title="Metafunction
+            result_of::wait_for_all<AE,F1, ..., Fn> ">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> </code></a>
+</h6></div></div></div>
+<p>
+              A metafunction returning the a pair: the index of the first function
+              executed by the AE and the result type of applying get on an asynchronous
+              executor handles.
+            </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">wait_for_any</span> <span class="special">{</span>
+        <span class="comment">// requires typename result_of<F1()>::type == typename result_of<Fk()>::type
+</span>        <span class="keyword">typedef</span>  <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">unsigned</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F1</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<div class="table">
+<a name="id4840705"></a><p class="title"><b>Table 10. wait_for_all Parameters</b></p>
+<table class="table" summary="wait_for_all Parameters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    <span class="bold"><strong>Parameter</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Requirement</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Description</strong></span>
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AE</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of <code class="computeroutput"><span class="identifier">AsynchrousExecutor</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Fk</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A model of nullary function
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_any</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span>
+                  <span class="identifier">F1</span><span class="special">,</span>
+                  <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">>::</span><span class="identifier">type</span></code>
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  a pair: the index of the first function executed by the AE and
+                  the result type of applying get on an asynchronous executor handles
+                  created by <code class="computeroutput"><span class="identifier">ae</span></code> to
+                  fork each <code class="computeroutput"><span class="identifier">fk</span></code>
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_any_hpp.non_member_function__wait_for_any_"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.ae_operations.wait_for_any_hpp.non_member_function__wait_for_any_" title="Non
+            member function wait_for_any">Non
+            member function <code class="computeroutput"><span class="identifier">wait_for_any</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span>  <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_for_any</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">>::</span><span class="identifier">type</span>
+<span class="identifier">wait_for_any</span><span class="special">(</span> <span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F1</span> <span class="identifier">f1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span> <span class="identifier">fn</span> <span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  a fusion tuple of the result of applying get to each one of the
+                  asynchronous executors handles resulting of forking each function
+                  <code class="computeroutput"><span class="identifier">fk</span></code> by <code class="computeroutput"><span class="identifier">ae</span></code>.
+                </p></dd>
+<dt><span class="term">Effect:</span></dt>
+<dd><p>
+                  Request the <code class="computeroutput"><span class="identifier">AE</span></code>
+                  to creates a n thread of execution one for the function <code class="computeroutput"><span class="identifier">fk</span></code> and blocks until all the AE
+                  handles are ready.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.algorithm_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.algorithm_hpp" title="
+        Header <boost/async/algorithm.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<p>
+          Include all the <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>/<code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code> framework
+          functions.
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">//#include <boost/async/lazy_fork.hpp>
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork_after</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">wait_for_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">wait_for_any</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">//#include <boost/async/algorithm/join_all_for.hpp>
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">joinable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">detach</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interrupt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interruption_requested</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_all_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">//#include <boost/async/algorithm/join_all_for.hpp>
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">are_all_joinable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">detach_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interrupt_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interruption_requested_on_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">//#include <boost/async/algorithm/wait_all_for.hpp>
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">get_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">is_ready</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">has_value</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">has_exception</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_all_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">//#include <boost/async/algorithm/wait_all_for.hpp>
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">get_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">//#include <boost/async/algorithm/get_all_until.hpp>
+</span><span class="comment">//#include <boost/async/algorithm/get_all_for.hpp>
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">are_all_ready</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">have_all_value</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">have_all_exception</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations" title="Future
+        based ACT operations">Future
+        based ACT operations</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_until_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.is_ready_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">is_ready</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.has_value_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">has_value</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.has_exception_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">has_exception</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_all_until_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_all_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">get_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.are_all_ready_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">are_all_ready</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.have_all_value_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">have_all_value</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.have_all_exception_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">have_some_exception</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_hpp" title="
+          Header <boost/async/algorithm/wait.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">wait</span></code>
+            which waits the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter. The default implementation applies the <code class="computeroutput"><span class="identifier">wait</span></code> member function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>. A user
+            adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">wait</span></code>
+            free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            do not provides a wait function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">wait</span></code>
+            member function, <code class="computeroutput"><span class="identifier">wait</span></code>
+            calls to the static operation apply on a class with the same name in
+            the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">wait</span><span class="special">();</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+        <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">wait</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="special">{</span>
+        <span class="keyword">return</span> <span class="identifier">partial_specialization_workaround</span><span class="special">::</span><span class="identifier">wait</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">apply</span><span class="special">(</span><span class="identifier">act</span><span class="special">);</span>
+    <span class="special">}</span>
+
+<span class="special">}</span>    
+<span class="special">}</span>   <span class="comment">// namespace boost
+</span></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_until_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_until_hpp" title="
+          Header <boost/async/algorithm/wait_until.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">wait_until</span></code>
+            which wait until the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter is ready or the given time is reached. The default
+            implementation applies the <code class="computeroutput"><span class="identifier">wait_until</span></code>
+            member function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">wait_until</span></code>
+            free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            do not provides a wait_until function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">wait_until</span></code>
+            member function, <code class="computeroutput"><span class="identifier">wait_until</span></code>
+            calls to the static operation apply on a class with the same name in
+            the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">wait_for</span></code>
+            which wait until the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter is ready or the given time is elapsed. The default
+            implementation applies the <code class="computeroutput"><span class="identifier">wait_for</span></code>
+            member function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">wait_for</span></code>
+            free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            do not provides a <code class="computeroutput"><span class="identifier">wait_for</span></code>
+            function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">wait_until</span></code>
+            member function, <code class="computeroutput"><span class="identifier">wait_for</span></code>
+            calls to the static operation apply on a class with the same name in
+            the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_until</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_for</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_until</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">);</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_for</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">abs_time</span> <span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+        <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">wait_until</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+        <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">wait_for</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span><span class="special">);</span>
+
+<span class="special">}</span>
+<span class="special">}</span>   <span class="comment">// namespace boost
+</span></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp" title="
+          Header <boost/async/algorithm/get.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">get</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp.metafunction__result_of__get_act___">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> </code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp.static_member_function__partial_specialization_workaround__get____apply___">Static
+            Member Function <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span><span class="special">::</span><span class="identifier">get</span><span class="special"><>::</span><span class="identifier">apply</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp.non_member_function__get___">Non
+            member function <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">get</span></code>
+            which obtain the stored value on the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter. The default implementation applies the <code class="computeroutput"><span class="identifier">get</span></code> member function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>. A user
+            adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">get</span></code>
+            free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            do not provides a get function with the same prototype. As for the moment
+            we can not partially specialize a function a trick is used: instead of
+            calling directly to the <code class="computeroutput"><span class="identifier">get</span></code>
+            member function <code class="computeroutput"><span class="identifier">get</span></code> calls
+            to the static operation <code class="computeroutput"><span class="identifier">apply</span></code>
+            on a class with the same name in the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">get</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">move_dest_type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">get</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span> <span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+        <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">get</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">get</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp.metafunction__result_of__get_act___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp.metafunction__result_of__get_act___" title="Metafunction
+            result_of::get<ACT> ">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">></span> </code></a>
+</h6></div></div></div>
+<p>
+              A metafunction returning the result type of applying get to an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">get</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">move_dest_type</span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<div class="table">
+<a name="id4846060"></a><p class="title"><b>Table 11. get Parameters</b></p>
+<table class="table" summary="get Parameters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    <span class="bold"><strong>Parameter</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Requirement</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Description</strong></span>
+                  </p>
+                  </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">ACT</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    An <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr></tbody>
+</table>
+</div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">S</span><span class="special">>::</span><span class="identifier">type</span></code>
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  Depending on the nature of the ACT returns a <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">move_dest_type</span></code>.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp.static_member_function__partial_specialization_workaround__get____apply___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp.static_member_function__partial_specialization_workaround__get____apply___" title="Static
+            Member Function partial_specialization_workaround::get<>::apply()">Static
+            Member Function <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span><span class="special">::</span><span class="identifier">get</span><span class="special"><>::</span><span class="identifier">apply</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<p>
+              The default implementation applies the 'get()' member function on the
+              <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">get</span> <span class="special">{</span>
+        <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span> <span class="special">);</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp.non_member_function__get___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_hpp.non_member_function__get___" title="Non
+            member function get()">Non
+            member function <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">get</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span>
+<span class="special">>::</span><span class="identifier">type</span>
+<span class="identifier">get</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  a fusion tuple of the result of applying <code class="computeroutput"><span class="identifier">get</span></code>
+                  to each one of the asynchronous completion token handles in the
+                  sequence.
+                </p></dd>
+<dt><span class="term">Effect:</span></dt>
+<dd><p>
+                  Blocks until all the ACT handles in the Sequence are ready.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  if some of the ACT::get operation throws
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.is_ready_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.is_ready_hpp" title="
+          Header <boost/async/algorithm/is_ready.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">is_ready</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">is_ready</span></code>
+            which states if <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter is ready. The default implementation applies the
+            <code class="computeroutput"><span class="identifier">is_ready</span></code> member function
+            to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">is_ready</span></code>
+            free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            do not provides a is_ready function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">is_ready</span></code>
+            member function <code class="computeroutput"><span class="identifier">is_ready</span></code>
+            calls to the static operation <code class="computeroutput"><span class="identifier">apply</span></code>
+            on a class with the same name in the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+  
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">is_ready</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">is_ready</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">is_ready</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span> <span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+        <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">is_ready</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">is_ready</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">);</span>
+
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.has_value_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.has_value_hpp" title="
+          Header <boost/async/algorithm/has_value.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">has_value</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">has_value</span></code>
+            which states if <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter has a value. The default implementation applies the
+            <code class="computeroutput"><span class="identifier">has_value</span></code> member function
+            to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">has_value</span></code>
+            free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            do not provides a has_value function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">has_value</span></code>
+            member function <code class="computeroutput"><span class="identifier">has_value</span></code>
+            calls to the static operation <code class="computeroutput"><span class="identifier">apply</span></code>
+            on a class with the same name in the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+  
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">has_value</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">has_value</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_value</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span> <span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+        <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">is_ready</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">has_value</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">);</span>
+
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.has_exception_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.has_exception_hpp" title="
+          Header <boost/async/algorithm/has_exception.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">has_exception</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">has_exception</span></code>
+            which states if <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter has an exception. The default implementation applies
+            the <code class="computeroutput"><span class="identifier">has_exception</span></code> member
+            function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">has_exception</span></code>
+            free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            do not provides a has_exception function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">has_exception</span></code>
+            member function <code class="computeroutput"><span class="identifier">has_exception</span></code>
+            calls to the static operation <code class="computeroutput"><span class="identifier">apply</span></code>
+            on a class with the same name in the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+  
+<span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+    <span class="keyword">struct</span> <span class="identifier">has_exception</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">result_type</span><span class="special">;</span>
+        <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+
+<span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">have_all_exception</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">all</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">has_exception</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span> <span class="keyword">bool</span> <span class="identifier">have_all_exception</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_all_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_all_hpp" title="
+          Header <boost/async/algorithm/wait_all.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">wait_all</span></code>
+            which waits the completion of all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in the sequence passed as parameter.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">wait</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">result_type</span><span class="special">;</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+            <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">wait_all</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">for_each</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">wait</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_all</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">wait_all</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+
+<span class="special">}</span>    
+<span class="special">}</span>   <span class="comment">// namespace boost
+</span></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_all_until_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.wait_all_until_hpp" title="
+          Header <boost/async/algorithm/wait_all_until.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">wait_all_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines two free function <code class="computeroutput"><span class="identifier">wait_all_until</span></code>
+            and <code class="computeroutput"><span class="identifier">wait_all_for</span></code> which
+            waits the completion of all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in the sequence passed as parameter or a given time is reached or elapsed
+            respectively.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">wait_until</span> <span class="special">{</span>
+            <span class="identifier">wait_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+            <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="keyword">struct</span> <span class="identifier">wait_for</span> <span class="special">{</span>
+            <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span>
+            <span class="identifier">wait_for</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Duration</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+            <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">wait_all_until</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">wait_all_for</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+    
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_all_until</span><span class="special"><</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">></span> 
+    <span class="identifier">wait_all_until</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">t</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_all_for</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">></span> 
+    <span class="identifier">wait_all_for</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Duration</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+
+<span class="special">}</span>    
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp" title="
+          Header <boost/async/algorithm/get_all.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">get_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp.functor__fct__get___">Functor
+            <code class="computeroutput"><span class="identifier">fct</span><span class="special">::</span><span class="identifier">get</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp.metafunction__result_of__get_all_ae_f1_______fn___">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> </code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp.non_member_function__get_all_">Non
+            member function <code class="computeroutput"><span class="identifier">get_all</span></code></a></span></dt>
+</dl></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">get_all</span></code>
+            which waits the completion of all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in the sequence passed as parameter, and returns a tuple with the value
+            stores in each one of the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">get</span> <span class="special">{</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+            <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">get_all</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">transform</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">get</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_all</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">get_all</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">mt</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp.functor__fct__get___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp.functor__fct__get___" title="Functor
+            fct::get<>">Functor
+            <code class="computeroutput"><span class="identifier">fct</span><span class="special">::</span><span class="identifier">get</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+    <span class="keyword">struct</span> <span class="identifier">get</span> <span class="special">{</span>
+       <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">></span>
+       <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">::</span><span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">AE</span><span class="special">&</span> <span class="identifier">ae</span><span class="special">);</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  The result of the AE::get().
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  if AE::get() throws.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp.metafunction__result_of__get_all_ae_f1_______fn___"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp.metafunction__result_of__get_all_ae_f1_______fn___" title="Metafunction
+            result_of::get_all<AE,F1, ..., Fn> ">Metafunction
+            <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_all</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span><span class="identifier">F1</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">></span> </code></a>
+</h6></div></div></div>
+<p>
+              A metafunction returning the result type of applying get_all to a Sequence
+              of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">get_all</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">transform</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">get</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<div class="table">
+<a name="id4851111"></a><p class="title"><b>Table 12. fork_all Parameters</b></p>
+<table class="table" summary="fork_all Parameters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    <span class="bold"><strong>Parameter</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Requirement</strong></span>
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    <span class="bold"><strong>Description</strong></span>
+                  </p>
+                  </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Sequence</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    A sequence of of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>s
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Operation's argument
+                  </p>
+                  </td>
+</tr></tbody>
+</table>
+</div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_all</span><span class="special"><</span><span class="identifier">S</span><span class="special">>::</span><span class="identifier">type</span></code>
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  a fusion tuple of the result of applying get to each one of the
+                  asynchronous executors in the sequence
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp.non_member_function__get_all_"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.get_all_hpp.non_member_function__get_all_" title="Non
+            member function get_all">Non
+            member function <code class="computeroutput"><span class="identifier">get_all</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">algo</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_all</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">get_all</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">mt</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  a fusion tuple of the result of applying <code class="computeroutput"><span class="identifier">get</span></code>
+                  to each one of the asynchronous completion token handles in the
+                  sequence.
+                </p></dd>
+<dt><span class="term">Effect:</span></dt>
+<dd><p>
+                  Blocks until all the ACT handles in the Sequence are ready.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  if some of the ACT::get operation throws
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.are_all_ready_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.are_all_ready_hpp" title="
+          Header <boost/async/algorithm/are_all_ready.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">are_all_ready</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">are_all_ready</span></code>
+            which states if all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in a sequence of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            are ready. The current implementation applies the <code class="computeroutput"><span class="identifier">is_ready</span></code>
+            free function for each <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">is_ready</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">result_type</span><span class="special">;</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">are_all_ready</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">all</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">is_ready</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span> <span class="keyword">bool</span> <span class="identifier">are_all_ready</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.have_all_value_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.have_all_value_hpp" title="
+          Header <boost/async/algorithm/have_all_value.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">have_all_value</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">have_all_value</span></code>
+            which states if all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in a sequence of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            have a value. The current implementation applies the <code class="computeroutput"><span class="identifier">has_value</span></code>
+            free function for each <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">has_value</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">result_type</span><span class="special">;</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">have_all_value</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">all</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">has_value</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span> <span class="keyword">bool</span> <span class="identifier">have_all_value</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.have_all_exception_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.future_based_act_operations.have_all_exception_hpp" title="
+          Header <boost/async/algorithm/have_some_exception.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">have_some_exception</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function __have_some<span class="underline">exception</span>_
+            which states if some of the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in a sequence of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            have a exception stored. The current implementation applies the <code class="computeroutput"><span class="identifier">has_exception</span></code> free function for each
+            <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">has_exception</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">result_type</span><span class="special">;</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">have_some_exception</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">all</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">has_exception</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span> <span class="keyword">bool</span> <span class="identifier">have_some_exception</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations" title="Thread
+        based ACT operations">Thread
+        based ACT operations</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.detach_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">detach</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.joinable_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">joinable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_until_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interrupt_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interrupt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interruption_requested_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interruption_requested</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.detach_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">detach_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.are_all_joinable_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">are_all_joinable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_all_until_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_all_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interrupt_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interrupt_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interruption_requested_on_all_hpp">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interruption_requested_on_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.detach_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.detach_hpp" title="
+          Header <boost/async/algorithm/detach.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">detach</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code> which <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code> the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter. The default implementation applies the <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>
+            member function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code> free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code> do not
+            provides a detach function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code> member function detach calls to the
+            static operation apply on a class with the same name in the namespace
+            <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">detach</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">detach</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">detach</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span> <span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span><span class="keyword">void</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">detach</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.joinable_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.joinable_hpp" title="
+          Header <boost/async/algorithm/joinable.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">joinable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">joinable</span></code>
+            which states if <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter is <code class="computeroutput"><span class="identifier">joinable</span></code>.
+            The default implementation applies the <code class="computeroutput"><span class="identifier">joinable</span></code>
+            member function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">joinable</span></code>
+            free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            do not provides a joinable function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">joinable</span></code>
+            member function <code class="computeroutput"><span class="identifier">joinable</span></code>
+            calls to the static operation <code class="computeroutput"><span class="identifier">apply</span></code>
+            on a class with the same name in the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">joinable</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">joinable</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">joinable</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span> <span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+        <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">joinable</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">joinable</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_hpp" title="
+          Header <boost/async/algorithm/join.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code> which joins the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter. The default implementation applies the <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+            member function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code> free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code> do not
+            provides a join function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code> member function join calls to the static
+            operation apply on a class with the same name in the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">join</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span> <span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+        <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">join</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">join</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="special">{</span>
+        <span class="keyword">return</span> <span class="identifier">partial_specialization_workaround</span><span class="special">::</span><span class="identifier">join</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">apply</span><span class="special">(</span><span class="identifier">act</span><span class="special">);</span>
+    <span class="special">}</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_until_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_until_hpp" title="
+          Header <boost/async/algorithm/join_until.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">join_until</span></code>
+            which join until the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter is ready or the given time is reached. The default
+            implementation applies the <code class="computeroutput"><span class="identifier">join_until</span></code>
+            member function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">join_until</span></code>
+            free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            do not provides a join_until function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">join_until</span></code>
+            member function, <code class="computeroutput"><span class="identifier">join_until</span></code>
+            calls to the static operation apply on a class with the same name in
+            the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">join_for</span></code>
+            which join until the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter is ready or the given time is elapsed. The default
+            implementation applies the <code class="computeroutput"><span class="identifier">join_for</span></code>
+            member function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">join_for</span></code>
+            free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            do not provides a <code class="computeroutput"><span class="identifier">join_for</span></code>
+            function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">join_until</span></code>
+            member function, <code class="computeroutput"><span class="identifier">join_for</span></code>
+            calls to the static operation apply on a class with the same name in
+            the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_until</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_for</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">ACT</span> <span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">join_until</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">);</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">join_for</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">abs_time</span> <span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+        <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">join_until</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">)</span> <span class="special">{</span>
+        <span class="keyword">return</span> <span class="identifier">partial_specialization_workaround</span><span class="special">::</span><span class="identifier">join_until</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">apply</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span> <span class="identifier">abs_time</span><span class="special">);</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+        <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">join_for</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Duration</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">)</span> <span class="special">{</span>
+        <span class="keyword">return</span> <span class="identifier">partial_specialization_workaround</span><span class="special">::</span><span class="identifier">join_for</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">apply</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span> <span class="identifier">rel_time</span><span class="special">);</span>
+    <span class="special">}</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interrupt_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interrupt_hpp" title="
+          Header <boost/async/algorithm/interrupt.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interrupt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code> which interrupts the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code> passed
+            as parameter. The default implementation applies the <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code> member function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>. A user
+            adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code> free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code> do not
+            provides a interrupt function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code> member function interrupt calls to
+            the static operation apply on a class with the same name in the namespace
+            <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">interrupt</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">interrupt</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">interrupt</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span> <span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+        <span class="keyword">void</span>
+    <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">interrupt</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interruption_requested_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interruption_requested_hpp" title="
+          Header <boost/async/algorithm/interruption_requested.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interruption_requested</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">interruption_requested</span></code>
+            which states if <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            passed as parameter has received un <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code> request. The default implementation
+            applies the <code class="computeroutput"><span class="identifier">interruption_requested</span></code>
+            member function to the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+            A user adapting another <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            could need to specialize the <code class="computeroutput"><span class="identifier">interruption_requested</span></code>
+            free function if the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            do not provides a interruption_requested function with the same prototype.
+          </p>
+<p>
+            As for the moment we can not partially specialize a function a trick
+            is used: instead of calling directly to the <code class="computeroutput"><span class="identifier">interruption_requested</span></code>
+            member function <code class="computeroutput"><span class="identifier">interruption_requested</span></code>
+            calls to the static operation <code class="computeroutput"><span class="identifier">apply</span></code>
+            on a class with the same name in the namespace <code class="computeroutput"><span class="identifier">partial_specialization_workaround</span></code>.
+            So the user can specialize partially this class.
+          </p>
+<p>
+            The template parameter ACT must be a model of <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">interruption_requested</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">interruption_requested</span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">interruption_requested</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span> <span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span><span class="special"><</span><span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>,</span>
+        <span class="keyword">bool</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+    <span class="keyword">bool</span> <span class="identifier">interruption_requested</span><span class="special">(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.detach_all_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.detach_all_hpp" title="
+          Header <boost/async/algorithm/detach_all.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">detach_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">detach_all</span></code>
+            which detach all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in the sequence passed as parameter.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">detach</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">result_type</span><span class="special">;</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+            <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">detach_all</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">for_each</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">detach</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">void</span> <span class="identifier">detach_all</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_all_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_all_hpp" title="
+          Header <boost/async/algorithm/join_all.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">join_all</span></code>
+            which waits the completion of all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in the sequence passed as parameter.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">join</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">result_type</span><span class="special">;</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+            <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">join_all</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">for_each</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">join</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">join_all</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">join_all</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.are_all_joinable_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.are_all_joinable_hpp" title="
+          Header <boost/async/algorithm/are_all_joinable.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">are_all_joinable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">are_all_joinable</span></code>
+            which states if all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in a sequence of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            are <code class="computeroutput"><span class="identifier">joinable</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">joinable</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">result_type</span><span class="special">;</span>
+
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+            <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">are_all_joinable</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">all</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">joinable</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">bool</span> <span class="identifier">are_all_joinable</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_all_until_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.join_all_until_hpp" title="
+          Header <boost/async/algorithm/join_all_until.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">join_all_until</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">join_all_until</span></code>
+            and __join_all<span class="underline">for</span>_ which waits
+            the completion of all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in the sequence passed as parameter or a given time is reached or elapsed
+            respectiviely.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">join_until</span> <span class="special">{</span>
+            <span class="identifier">join_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+            <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+        <span class="special">};</span>
+
+        <span class="keyword">struct</span> <span class="identifier">join_for</span> <span class="special">{</span>
+            <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span>
+            <span class="identifier">join_for</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Duration</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+            <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">join_all_until</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">join_all_for</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">join_all_until</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">></span>
+    <span class="identifier">join_all_until</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">join_all_for</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">></span>
+    <span class="identifier">join_all_for</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Duration</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interrupt_all_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interrupt_all_hpp" title="
+          Header <boost/async/algorithm/interrupt_all.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interrupt_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">interrupt_all</span></code>
+            which interrupts all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            in the sequence passed as parameter.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">interrupt</span> <span class="special">{</span>
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+            <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">interrupt_all</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">for_each</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">interrupt</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">void</span> <span class="identifier">interrupt_all</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interruption_requested_on_all_hpp"></a><a href="ae_act_framework_reference.html#toward_boost_async.reference.ae_act_framework_reference.thread_based_act_operations.interruption_requested_on_all_hpp" title="
+          Header <boost/async/algorithm/interruption_requested_on_all.hpp>">
+          Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">interruption_requested_on_all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h5></div></div></div>
+<p>
+            Defines a free function <code class="computeroutput"><span class="identifier">interruption_requested_on_all</span></code>
+            which states if an interruption has been requested on all the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code> in a sequence
+            of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">fct</span> <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">interruption_requested</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">result_type</span><span class="special">;</span>
+
+            <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ACT</span><span class="special">></span>
+            <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">ACT</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">interruption_requested_on_all</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">all</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">fct</span><span class="special">::</span><span class="identifier">interruption_requested</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">></span>
+    <span class="keyword">bool</span> <span class="identifier">interruption_requested_on_all</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+<span class="special">}}</span>
+</pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="concepts.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="ae_act_models_reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/reference/ae_act_models_reference.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/reference/ae_act_models_reference.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,2553 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>AE/ACT
+      Models Reference</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../reference.html" title=" Reference">
+<link rel="prev" href="ae_act_framework_reference.html" title="AE/ACT
+      Framework Reference">
+<link rel="next" href="../examples.html" title="Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ae_act_framework_reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference"></a><a href="ae_act_models_reference.html" title="AE/ACT
+      Models Reference">AE/ACT
+      Models Reference</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.future_traits_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">future_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">immediate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__unique_immediate__">Class
+          <code class="computeroutput"><span class="identifier">unique_immediate</span> </code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__shared_immediate__">Class
+          <code class="computeroutput"><span class="identifier">shared_immediate</span> </code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.basic_threader_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">basic_threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">launcher</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__">Class
+          <code class="computeroutput"><span class="identifier">launcher</span> </code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__">Class
+          <code class="computeroutput"><span class="identifier">shared_launcher</span> </code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___">Template
+          Class <code class="computeroutput"><span class="identifier">unique_joiner</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.non_member_swap">
+          Non-member function <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_">Template
+          Class <code class="computeroutput"><span class="identifier">unique_threader</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___">Template
+          Class <code class="computeroutput"><span class="identifier">shared_joiner</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.non_member_swap2">
+          Non-member function <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_">Template
+          Class <code class="computeroutput"><span class="identifier">shared_threader</span></code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.scheduler_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">scheduler</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_futures_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">future</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_launcher_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">launcher</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_threader_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_basic_threaderr_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">basic_threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_scheduler_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">scheduler</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.asynchronous_executor_decorator_hpp">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">asynchronous_executor_decorator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.future_traits_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.future_traits_hpp" title="
+        Header <boost/async/future_traits.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">future_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span>
+    <span class="special">{</span>
+<span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_HAS_RVALUE_REFS</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_fundamental</span><span class="special"><</span><span class="identifier">T</span><span class="special">>,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">T</span><span class="special">&&>::</span><span class="identifier">type</span> <span class="identifier">move_dest_type</span><span class="special">;</span>
+<span class="preprocessor">#else</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_convertible</span><span class="special"><</span><span class="identifier">T</span><span class="special">&,</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">>,</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special">&l
t;</span><span class="identifier">T</span><span class="special">>,</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">move_dest_type</span><span class="special">;</span>
+<span class="preprocessor">#endif</span>
+    <span class="special">};</span>
+    
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">&></span> <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">move_dest_type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span><span class="special"><></span>
+    <span class="keyword">struct</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">void</span><span class="special">></span> <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">move_dest_type</span><span class="special">;</span>
+    <span class="special">};</span>        
+
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span>
+    <span class="special">{</span>
+<span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_HAS_RVALUE_REFS</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_fundamental</span><span class="special"><</span><span class="identifier">T</span><span class="special">>,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">T</span><span class="special">&&>::</span><span class="identifier">type</span> <span class="identifier">move_dest_type</span><span class="special">;</span>
+<span class="preprocessor">#else</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_convertible</span><span class="special"><</span><span class="identifier">T</span><span class="special">&,</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">>,</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special">&l
t;</span><span class="identifier">T</span><span class="special">>,</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">move_dest_type</span><span class="special">;</span>
+<span class="preprocessor">#endif</span>
+    <span class="special">};</span>
+    
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">&></span> <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">move_dest_type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span><span class="special"><></span>
+    <span class="keyword">struct</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="keyword">void</span><span class="special">></span> <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">move_dest_type</span><span class="special">;</span>
+    <span class="special">};</span>        
+
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">&></span> <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">move_dest_type</span><span class="special">;</span>
+    <span class="special">};</span>        
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">is_movable</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">{};</span>
+
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">is_movable</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">wait</span><span class="special">();</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">wait</span><span class="special">();</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.immediate_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp" title="
+        Header <boost/async/immediate.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">immediate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__unique_immediate__">Class
+          <code class="computeroutput"><span class="identifier">unique_immediate</span> </code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__shared_immediate__">Class
+          <code class="computeroutput"><span class="identifier">shared_immediate</span> </code></a></span></dt>
+</dl></div>
+<p>
+          An immediate executor is an <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+          executing the function on the current thread with a future as <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code> so we can get the value
+          associated to it.
+        </p>
+<p>
+          The library defines two kind of immediate executors: unique_immediate and
+          shared_immediate that respectively have a unique_future and a shared_future
+          as <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">class</span> <span class="identifier">immediate</span><span class="special">;</span>
+    <span class="keyword">class</span> <span class="identifier">shared_immediate</span><span class="special">;</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">wait</span><span class="special">();</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">wait</span><span class="special">();</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+<span class="special">}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__unique_immediate__"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__unique_immediate__" title="Class
+          unique_immediate ">Class
+          <code class="computeroutput"><span class="identifier">unique_immediate</span> </code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__unique_immediate__.metafunction__unique_immediate__handle___">Metafunction
+            <code class="computeroutput"><span class="identifier">unique_immediate</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__unique_immediate__.member_function__unique_immediate____fork_">Member
+            function <code class="computeroutput"><span class="identifier">unique_immediate</span><span class="special"><>::</span><span class="identifier">fork</span></code></a></span></dt>
+</dl></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">unique_immediate</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+    <span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__unique_immediate__.metafunction__unique_immediate__handle___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__unique_immediate__.metafunction__unique_immediate__handle___" title="Metafunction
+            unique_immediate::handle<>">Metafunction
+            <code class="computeroutput"><span class="identifier">unique_immediate</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+              Metafunction that returns the result type of the fork function applied
+              to a unique_immediate and the value type.
+            </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  L::handle<T>::type
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  A unique_future<T>.
+                </p></dd>
+<dt><span class="term">Complexity:</span></dt>
+<dd><p>
+                  constant.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__unique_immediate__.member_function__unique_immediate____fork_"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__unique_immediate__.member_function__unique_immediate____fork_" title="Member
+            function unique_immediate<>::fork">Member
+            function <code class="computeroutput"><span class="identifier">unique_immediate</span><span class="special"><>::</span><span class="identifier">fork</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+<span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+<span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  A unique_future to the result of calling a function F.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  create a thread executing the function f. The result of the function
+                  will be stored on the resulting future.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__shared_immediate__"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__shared_immediate__" title="Class
+          shared_immediate ">Class
+          <code class="computeroutput"><span class="identifier">shared_immediate</span> </code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__shared_immediate__.metafunction__shared_immediate__handle___">Metafunction
+            <code class="computeroutput"><span class="identifier">shared_immediate</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__shared_immediate__.member_function__shared_immediate__fork_">Member
+            function <code class="computeroutput"><span class="identifier">shared_immediate</span><span class="special">::</span><span class="identifier">fork</span></code></a></span></dt>
+</dl></div>
+<p>
+            Thread shared_immediate using a common configuration managed with the
+            thread attributes and returning on the fork operation a unique_future
+            to the resulting type of the call to the threaded function.
+          </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">shared_immediate</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attr</span><span class="special">();</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+    <span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__shared_immediate__.metafunction__shared_immediate__handle___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__shared_immediate__.metafunction__shared_immediate__handle___" title="Metafunction
+            shared_immediate::handle<>">Metafunction
+            <code class="computeroutput"><span class="identifier">shared_immediate</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+              Metafunction that returns the result type of the fork function applied
+              to a shared_immediate and the value type.
+            </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  L::handle<T>::type
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  A unique_future<T>.
+                </p></dd>
+<dt><span class="term">Complexity:</span></dt>
+<dd><p>
+                  constant.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__shared_immediate__.member_function__shared_immediate__fork_"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.immediate_hpp.class__shared_immediate__.member_function__shared_immediate__fork_" title="Member
+            function shared_immediate::fork">Member
+            function <code class="computeroutput"><span class="identifier">shared_immediate</span><span class="special">::</span><span class="identifier">fork</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+<span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+<span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  A unique_future to the result of calling a function F.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  create a thread executing the function f. The result of the function
+                  will be stored on the resulting future.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.basic_threader_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.basic_threader_hpp" title="
+        Header <boost/async/basic_threader.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">basic_threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<p>
+          <code class="computeroutput"><span class="identifier">basic_threader</span></code> is an <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code> with a thread as
+          <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>.
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">class</span> <span class="identifier">basic_threader</span> <span class="special">{</span>
+    <span class="keyword">public</span><span class="special">:</span>
+        <span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attr</span><span class="special">();</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">thread</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span> <span class="identifier">thread</span> <span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span><span class="special"><></span>
+    <span class="keyword">struct</span> <span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">thread</span> <span class="special">></span>  <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">move_dest_type</span><span class="special">;</span>
+    <span class="special">};</span>
+    
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><></span>
+        <span class="keyword">struct</span> <span class="identifier">wait</span><span class="special"><</span><span class="identifier">thread</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait</span><span class="special"><</span><span class="identifier">thread</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">thread</span><span class="special">&</span> <span class="identifier">act</span><span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">join</span><span class="special">();</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+
+        <span class="keyword">template</span> <span class="special"><></span>
+        <span class="keyword">struct</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">thread</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">thread</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">thread</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_join</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">thread</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">thread</span><span class="special">,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">thread</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_join</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+
+        <span class="keyword">template</span> <span class="special"><></span>
+        <span class="keyword">struct</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">thread</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">join_until</span><span class="special"><</span><span class="identifier">thread</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">thread</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_join</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">thread</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">thread</span><span class="special">,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">thread</span><span class="special">&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_join</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+    
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.launcher_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp" title="
+        Header <boost/async/launcher.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">launcher</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__">Class
+          <code class="computeroutput"><span class="identifier">launcher</span> </code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__">Class
+          <code class="computeroutput"><span class="identifier">shared_launcher</span> </code></a></span></dt>
+</dl></div>
+<p>
+          A launcher is an <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+          with a future as <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>
+          so we can get the value associated to it.
+        </p>
+<p>
+          The library defines two kind of launchers: unique_launcher and shared_launcher
+          that respectively have a unique_future and a shared_future as <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">class</span> <span class="identifier">launcher</span><span class="special">;</span>
+    <span class="keyword">class</span> <span class="identifier">shared_launcher</span><span class="special">;</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">wait</span><span class="special">();</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">wait</span><span class="special">();</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">join_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_until</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait_until</span><span class="special">(</span><span class="identifier">abs_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Duration</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">wait_for</span><span class="special"><</span><span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>,</span><span class="identifier">Duration</span><span class="special">>::</span><span class="identifier">type</span> 
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">R</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="identifier">rel_time</span> <span class="special">)</span> <span class="special">{</span>
+                <span class="keyword">return</span> <span class="identifier">act</span><span class="special">.</span><span class="identifier">timed_wait</span><span class="special">(</span><span class="identifier">rel_time</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+
+<span class="special">}}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__" title="Class
+          launcher ">Class
+          <code class="computeroutput"><span class="identifier">launcher</span> </code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__.member_function__launcher__attributes_">Member
+            function <code class="computeroutput"><span class="identifier">launcher</span><span class="special">::</span><span class="identifier">attributes</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__.metafunction__launcher__handle___">Metafunction
+            <code class="computeroutput"><span class="identifier">launcher</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__.member_function__lancher__fork_">Member
+            function <code class="computeroutput"><span class="identifier">lancher</span><span class="special">::</span><span class="identifier">fork</span></code></a></span></dt>
+</dl></div>
+<p>
+            Thread launcher using a common configuration managed with the thread
+            attributes and returning on the fork operation a unique_future to the
+            resulting type of the call to the threaded function.
+          </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">launcher</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attr</span><span class="special">();</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+    <span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__.member_function__launcher__attributes_"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__.member_function__launcher__attributes_" title="Member
+            function launcher::attributes">Member
+            function <code class="computeroutput"><span class="identifier">launcher</span><span class="special">::</span><span class="identifier">attributes</span></code></a>
+</h6></div></div></div>
+<p>
+              Reference to the thread attributes accesor.
+            </p>
+<pre class="programlisting"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attributes</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  A reference to the thread attributes.
+                </p></dd>
+<dt><span class="term">Complexity:</span></dt>
+<dd><p>
+                  constant.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__.metafunction__launcher__handle___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__.metafunction__launcher__handle___" title="Metafunction
+            launcher::handle<>">Metafunction
+            <code class="computeroutput"><span class="identifier">launcher</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+              Metafunction that returns the result type of the fork function applied
+              to a launcher and the value type.
+            </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  L::handle<T>::type
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  A unique_future<T>.
+                </p></dd>
+<dt><span class="term">Complexity:</span></dt>
+<dd><p>
+                  constant.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__.member_function__lancher__fork_"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__launcher__.member_function__lancher__fork_" title="Member
+            function lancher::fork">Member
+            function <code class="computeroutput"><span class="identifier">lancher</span><span class="special">::</span><span class="identifier">fork</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+<span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+<span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  A unique_future to the result of calling a function F.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  create a thread executing the function f. The result of the function
+                  will be stored on the resulting future.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__" title="Class
+          shared_launcher ">Class
+          <code class="computeroutput"><span class="identifier">shared_launcher</span> </code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__.member_function__shared_launcher__attributes_">Member
+            function <code class="computeroutput"><span class="identifier">shared_launcher</span><span class="special">::</span><span class="identifier">attributes</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__.metafunction__shared_launcher__handle___">Metafunction
+            <code class="computeroutput"><span class="identifier">shared_launcher</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__.member_function__lancher__fork_">Member
+            function <code class="computeroutput"><span class="identifier">lancher</span><span class="special">::</span><span class="identifier">fork</span></code></a></span></dt>
+</dl></div>
+<p>
+            Thread shared_launcher using a common configuration managed with the
+            thread attributes and returning on the fork operation a unique_future
+            to the resulting type of the call to the threaded function.
+          </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">shared_launcher</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attr</span><span class="special">();</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+    <span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__.member_function__shared_launcher__attributes_"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__.member_function__shared_launcher__attributes_" title="Member
+            function shared_launcher::attributes">Member
+            function <code class="computeroutput"><span class="identifier">shared_launcher</span><span class="special">::</span><span class="identifier">attributes</span></code></a>
+</h6></div></div></div>
+<p>
+              Reference to the thread attributes accesor.
+            </p>
+<pre class="programlisting"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attributes</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  A reference to the thread attributes.
+                </p></dd>
+<dt><span class="term">Complexity:</span></dt>
+<dd><p>
+                  constant.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__.metafunction__shared_launcher__handle___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__.metafunction__shared_launcher__handle___" title="Metafunction
+            shared_launcher::handle<>">Metafunction
+            <code class="computeroutput"><span class="identifier">shared_launcher</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+              Metafunction that returns the result type of the fork function applied
+              to a shared_launcher and the value type.
+            </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  L::handle<T>::type
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  A unique_future<T>.
+                </p></dd>
+<dt><span class="term">Complexity:</span></dt>
+<dd><p>
+                  constant.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__.member_function__lancher__fork_"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.launcher_hpp.class__shared_launcher__.member_function__lancher__fork_" title="Member
+            function lancher::fork">Member
+            function <code class="computeroutput"><span class="identifier">lancher</span><span class="special">::</span><span class="identifier">fork</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+<span class="identifier">unique_future</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+<span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  A unique_future to the result of calling a function F.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  create a thread executing the function f. The result of the function
+                  will be stored on the resulting future.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp" title="
+        Header <boost/async/threader.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___">Template
+          Class <code class="computeroutput"><span class="identifier">unique_joiner</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.non_member_swap">
+          Non-member function <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_">Template
+          Class <code class="computeroutput"><span class="identifier">unique_threader</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___">Template
+          Class <code class="computeroutput"><span class="identifier">shared_joiner</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.non_member_swap2">
+          Non-member function <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_">Template
+          Class <code class="computeroutput"><span class="identifier">shared_threader</span></code></a></span></dt>
+</dl></div>
+<p>
+          A threader is an <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+          with an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+          that model <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>
+          and <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>.
+        </p>
+<p>
+          The library defines two kind of threaders: unique_threader and shared_threader
+          that respectively have a unique_joiner and a shared_joiner as <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">fork</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ResultType</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">unique_joiner</span><span class="special">;</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ResultType</span><span class="special">></span>
+    <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">unique_joiner</span><span class="special"><</span><span class="identifier">ResultType</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">unique_joiner</span><span class="special"><</span><span class="identifier">ResultType</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+    <span class="keyword">class</span> <span class="identifier">unique_threader</span><span class="special">;</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ResultType</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">shared_joiner</span><span class="special">;</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ResultType</span><span class="special">></span>
+    <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">shared_joiner</span><span class="special"><</span><span class="identifier">ResultType</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">shared_joiner</span><span class="special"><</span><span class="identifier">ResultType</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+    <span class="keyword">class</span> <span class="identifier">shared_threader</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___" title="Template
+          Class unique_joiner<>">Template
+          Class <code class="computeroutput"><span class="identifier">unique_joiner</span><span class="special"><></span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.destructor">
+            unique_joiner Destructor</a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.swap">
+            Member function <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__get___operator_____">Member
+            Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()|</span><span class="keyword">operator</span><span class="special">()()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__is_ready___">Member
+            Function <code class="computeroutput"><span class="identifier">is_ready</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__has_exception___">Member
+            Function <code class="computeroutput"><span class="identifier">has_exception</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__has_value___">Member
+            Function <code class="computeroutput"><span class="identifier">has_value</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__wait___">Member
+            Function <code class="computeroutput"><span class="identifier">wait</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__wait_until___wait_for___">Member
+            Function <code class="computeroutput"><span class="identifier">wait_until</span><span class="special">()|</span><span class="identifier">wait_for</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.joinable">
+            Member function <code class="computeroutput"><span class="identifier">joinable</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.join">
+            Member function <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__join_until___join_for___">Member
+            function <code class="computeroutput"><span class="identifier">join_until</span><span class="special">()|</span><span class="identifier">join_for</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.detach">
+            Member function <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.get_id">
+            Member function <code class="computeroutput"><span class="identifier">get_id</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.interrupt">
+            Member function <code class="computeroutput"><span class="identifier">interrupt</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.nativehandle">
+            Member function <code class="computeroutput"><span class="identifier">native_handle</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ResultType</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">unique_joiner</span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">unique_joiner</span> <span class="identifier">this_type</span><span class="special">;</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">unique_joiner</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">unique_joiner</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="special">=</span> <span class="keyword">delete</span><span class="special">;</span>
+    <span class="identifier">unique_joiner</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">unique_joiner</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="special">=</span> <span class="keyword">delete</span><span class="special">;</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">ResultType</span> <span class="identifier">result_type</span><span class="special">;</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Nullary</span><span class="special">></span>
+    <span class="identifier">unique_joiner</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attr</span><span class="special">,</span> <span class="identifier">Nullary</span> <span class="identifier">f</span><span class="special">);</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Nullary</span><span class="special">></span>
+    <span class="identifier">unique_joiner</span><span class="special">(</span><span class="identifier">Nullary</span> <span class="identifier">f</span><span class="special">);</span>
+
+    <span class="identifier">unique_joiner</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">unique_joiner</span><span class="special">></span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="identifier">unique_joiner</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">unique_joiner</span><span class="special">></span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="keyword">operator</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">unique_joiner</span><span class="special">>();</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">unique_joiner</span><span class="special">></span> <span class="identifier">move</span><span class="special">();</span>
+
+    <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">this_type</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span>
+
+    <span class="keyword">bool</span> <span class="identifier">joinable</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">void</span> <span class="identifier">join</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">join_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">TimeDuration</span><span class="special">></span>
+    <span class="keyword">inline</span> <span class="keyword">bool</span> <span class="identifier">join_for</span><span class="special">(</span><span class="identifier">TimeDuration</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+
+    <span class="identifier">result_type</span> <span class="identifier">get</span><span class="special">();</span>
+    <span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()();</span>
+
+    <span class="keyword">bool</span> <span class="identifier">is_ready</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">bool</span> <span class="identifier">has_exception</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">bool</span> <span class="identifier">has_value</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+    <span class="keyword">void</span> <span class="identifier">wait</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">bool</span> <span class="identifier">wait_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">TimeDuration</span><span class="special">></span>
+    <span class="keyword">inline</span> <span class="keyword">bool</span> <span class="identifier">wait_for</span><span class="special">(</span><span class="identifier">TimeDuration</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+    <span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">get_id</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">void</span> <span class="identifier">detach</span><span class="special">();</span>
+    <span class="keyword">void</span> <span class="identifier">interrupt</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">interruption_requested</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">platform</span><span class="special">-</span><span class="identifier">specific</span><span class="special">-</span><span class="identifier">type</span> <span class="identifier">native_handle_type</span><span class="special">;</span>
+    <span class="identifier">native_handle_type</span> <span class="identifier">native_handle</span><span class="special">();</span>
+
+    <span class="identifier">unique_future</span><span class="special"><</span><span class="identifier">result_type</span><span class="special">></span> <span class="identifier">get_future</span><span class="special">();</span>
+
+<span class="special">};</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.destructor"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.destructor" title="
+            unique_joiner Destructor">
+            unique_joiner Destructor</a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">unique_joiner</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  has an associated thread of execution, calls <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>. Destroys <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.swap"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.swap" title="
+            Member function swap()">
+            Member function <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">unique_joiner</span><span class="special">&</span> <span class="identifier">other</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Exchanges the threads of execution associated with <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  and <code class="computeroutput"><span class="identifier">other</span></code>, so
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  is associated with the thread of execution associated with <code class="computeroutput"><span class="identifier">other</span></code> prior to the call, and
+                  vice-versa.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()</span></code>
+                  returns the same value as <code class="computeroutput"><span class="identifier">other</span><span class="special">.</span><span class="identifier">get_id</span><span class="special">()</span></code> prior to the call. <code class="computeroutput"><span class="identifier">other</span><span class="special">.</span><span class="identifier">get_id</span><span class="special">()</span></code>
+                  returns the same value as <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()</span></code> prior to the call.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__get___operator_____"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__get___operator_____" title="Member
+            Function get()|operator()()">Member
+            Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()|</span><span class="keyword">operator</span><span class="special">()()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="identifier">result_type</span> <span class="identifier">get</span><span class="special">();</span>
+<span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Retrieves the value returned by the Nullary function.
+                </p></dd>
+<dt><span class="term">Sychronization:</span></dt>
+<dd><p>
+                  The completion of the call to the operator()() the Nullary function
+                  happens before get() returns.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  If the result type R is a reference, returns the stored reference.
+                  If R is void, there is no return value. Otherwise, returns an rvalue-reference
+                  to the value stored in the asynchronous result.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  the stored exception, if an exception was stored and not retrieved
+                  before.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  It is unspecified what happens when get() is called a second time
+                  on the same unique_joiner.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  unsafe
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__is_ready___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__is_ready___" title="Member
+            Function is_ready()">Member
+            Function <code class="computeroutput"><span class="identifier">is_ready</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">is_ready</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true only if the associated state holds a value or an exception
+                  ready for retrieval.
+                </p></dd>
+<dt><span class="term">Remark:</span></dt>
+<dd><p>
+                  the return value is unspecified after a call to get().
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__has_exception___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__has_exception___" title="Member
+            Function has_exception()">Member
+            Function <code class="computeroutput"><span class="identifier">has_exception</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">has_exception</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true only if is_ready() == true and the associated state contains
+                  an exception.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__has_value___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__has_value___" title="Member
+            Function has_value()">Member
+            Function <code class="computeroutput"><span class="identifier">has_value</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">has_value</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true only if is_ready() == true and the associated state contains
+                  a value.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__wait___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__wait___" title="Member
+            Function wait()">Member
+            Function <code class="computeroutput"><span class="identifier">wait</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">wait</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Blocks until the Nullariry function ends.
+                </p></dd>
+<dt><span class="term">Sychronization:</span></dt>
+<dd><p>
+                  The completion of the call to the operator()() the Nullary function
+                  happens before wait() returns.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  the stored exception, if an exception was stored and not retrieved
+                  before.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  is_ready() == true.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  unsafe
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__wait_until___wait_for___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__wait_until___wait_for___" title="Member
+            Function wait_until()|wait_for()">Member
+            Function <code class="computeroutput"><span class="identifier">wait_until</span><span class="special">()|</span><span class="identifier">wait_for</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">wait_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">TimeDuration</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">wait_for</span><span class="special">(</span><span class="identifier">TimeDuration</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Blocks until the Nullariry function ends.
+                </p></dd>
+<dt><span class="term">Sychronization:</span></dt>
+<dd><p>
+                  The completion of the call to the operator()() the Nullary function
+                  happens before wait() returns.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  If the result type R is a reference, returns the stored reference.
+                  If R is void, there is no return value. Otherwise, returns an rvalue-reference
+                  to the value stored in the asynchronous result.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  the stored exception, if an exception was stored and not retrieved
+                  before.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  is_ready() == true.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  unsafe
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.joinable"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.joinable" title="
+            Member function joinable()">
+            Member function <code class="computeroutput"><span class="identifier">joinable</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">joinable</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, <code class="computeroutput"><span class="keyword">false</span></code>
+                  otherwise.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.join"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.join" title="
+            Member function join()">
+            Member function <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Preconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()!=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">get_id</span><span class="special">()</span></code>
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, waits for that thread of execution
+                  to complete.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution on entry, that thread of execution
+                  has completed. <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  no longer refers to any thread of execution.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code> if the current
+                  thread of execution is interrupted.
+                </p></dd>
+<dt><span class="term">Notes:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+                  is one of the predefined <span class="emphasis"><em>interruption points</em></span>.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__join_until___join_for___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.member_function__join_until___join_for___" title="Member
+            function join_until()|join_for()">Member
+            function <code class="computeroutput"><span class="identifier">join_until</span><span class="special">()|</span><span class="identifier">join_for</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">join_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">wait_until</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">TimeDuration</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">join_for</span><span class="special">(</span><span class="identifier">TimeDuration</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Preconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()!=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">get_id</span><span class="special">()</span></code>
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, waits for that thread of execution
+                  to complete, the time <code class="computeroutput"><span class="identifier">wait_until</span></code>
+                  has been reach or the specified duration <code class="computeroutput"><span class="identifier">rel_time</span></code>
+                  has elapsed. If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> doesn't refer to a thread of
+                  execution, returns immediately.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution on entry, and that thread of execution
+                  has completed before the call times out, <code class="computeroutput"><span class="keyword">false</span></code>
+                  otherwise.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution on entry, and <code class="computeroutput"><span class="identifier">timed_join</span></code>
+                  returns <code class="computeroutput"><span class="keyword">true</span></code>, that
+                  thread of execution has completed, and <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> no longer refers to any thread
+                  of execution. If this call to <code class="computeroutput"><span class="identifier">timed_join</span></code>
+                  returns <code class="computeroutput"><span class="keyword">false</span></code>, <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  is unchanged.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code> if the current
+                  thread of execution is interrupted.
+                </p></dd>
+<dt><span class="term">Notes:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code>
+                  is one of the predefined <span class="emphasis"><em>interruption points</em></span>.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.detach"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.detach" title="
+            Member function detach()">
+            Member function <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">detach</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, that thread of execution becomes
+                  detached, and no longer has an associated <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code>
+                  object.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  no longer refers to any thread of execution.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.get_id"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.get_id" title="
+            Member function get_id()">
+            Member function <code class="computeroutput"><span class="identifier">get_id</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">get_id</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code>
+                  that represents that thread. Otherwise returns a default-constructed
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code>.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.interrupt"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.interrupt" title="
+            Member function interrupt()">
+            Member function <code class="computeroutput"><span class="identifier">interrupt</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">interrupt</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, request that the thread will be
+                  interrupted the next time it enters one of the predefined <span class="emphasis"><em>interruption
+                  points</em></span> with interruption enabled, or if it is currently
+                  <span class="emphasis"><em>blocked</em></span> in a call to one of the predefined
+                  <span class="emphasis"><em>interruption points</em></span> with interruption enabled
+                  .
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.nativehandle"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_joiner___.nativehandle" title="
+            Member function native_handle()">
+            Member function <code class="computeroutput"><span class="identifier">native_handle</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">platform</span><span class="special">-</span><span class="identifier">specific</span><span class="special">-</span><span class="identifier">type</span> <span class="identifier">native_handle_type</span><span class="special">;</span>
+<span class="identifier">native_handle_type</span> <span class="identifier">native_handle</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Returns an instance of <code class="computeroutput"><span class="identifier">native_handle_type</span></code>
+                  that can be used with platform-specific APIs to manipulate the
+                  underlying implementation. If no such instance exists, <code class="computeroutput"><span class="identifier">native_handle</span><span class="special">()</span></code>
+                  and <code class="computeroutput"><span class="identifier">native_handle_type</span></code>
+                  are not present.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.non_member_swap"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.non_member_swap" title="
+          Non-member function swap()">
+          Non-member function <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">unique_joiner</span><span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span><span class="identifier">unique_joiner</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="identifier">lhs</span><span class="special">.</span><span class="identifier">swap</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">)</span></code>.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_" title="Template
+          Class unique_threader">Template
+          Class <code class="computeroutput"><span class="identifier">unique_threader</span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_.member_function__unique_threader__attributes___">Member
+            function <code class="computeroutput"><span class="identifier">unique_threader</span><span class="special">::</span><span class="identifier">attributes</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_.metafunction__unique_threader__handle___">Metafunction
+            <code class="computeroutput"><span class="identifier">unique_threader</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_.member_function__unique_threader__fork_">Member
+            function <code class="computeroutput"><span class="identifier">unique_threader</span><span class="special">::</span><span class="identifier">fork</span></code></a></span></dt>
+</dl></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">unique_threader</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attributes</span><span class="special">();</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">unique_joiner</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">unique_joiner</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+    <span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+
+<span class="special">};</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_.member_function__unique_threader__attributes___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_.member_function__unique_threader__attributes___" title="Member
+            function unique_threader::attributes()">Member
+            function <code class="computeroutput"><span class="identifier">unique_threader</span><span class="special">::</span><span class="identifier">attributes</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<p>
+              Reference to the thread attributes accesor.
+            </p>
+<pre class="programlisting"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attributes</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  A reference to the thread attributes.
+                </p></dd>
+<dt><span class="term">Complexity:</span></dt>
+<dd><p>
+                  constant.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_.metafunction__unique_threader__handle___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_.metafunction__unique_threader__handle___" title="Metafunction
+            unique_threader::handle<>">Metafunction
+            <code class="computeroutput"><span class="identifier">unique_threader</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+              Metafunction that returns the result type of the fork function applied
+              to a unique_threader and the value type.
+            </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">unique_joiner</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  L::handle<T>::type
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  A unique_joiner<T>.
+                </p></dd>
+<dt><span class="term">Complexity:</span></dt>
+<dd><p>
+                  constant.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_.member_function__unique_threader__fork_"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__unique_threader_.member_function__unique_threader__fork_" title="Member
+            function unique_threader::fork">Member
+            function <code class="computeroutput"><span class="identifier">unique_threader</span><span class="special">::</span><span class="identifier">fork</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+<span class="identifier">unique_joiner</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+<span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  A unique_joiner to the result of calling a function F.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  create a thread executing the function f. The result of the function
+                  will be stored on the resulting unique_joiner.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___" title="Template
+          Class shared_joiner<>">Template
+          Class <code class="computeroutput"><span class="identifier">shared_joiner</span><span class="special"><></span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.destructor">
+            shared_joiner Destructor</a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.swap2">
+            Member function <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__get___operator_____">Member
+            Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()|</span><span class="keyword">operator</span><span class="special">()()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__is_ready___">Member
+            Function <code class="computeroutput"><span class="identifier">is_ready</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__has_exception___">Member
+            Function <code class="computeroutput"><span class="identifier">has_exception</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__has_value___">Member
+            Function <code class="computeroutput"><span class="identifier">has_value</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__wait___">Member
+            Function <code class="computeroutput"><span class="identifier">wait</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__wait_until___wait_for___">Member
+            Function <code class="computeroutput"><span class="identifier">wait_until</span><span class="special">()|</span><span class="identifier">wait_for</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.joinable2">
+            Member function <code class="computeroutput"><span class="identifier">joinable</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.join2">
+            Member function <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__join_until___join_for___">Member
+            function <code class="computeroutput"><span class="identifier">join_until</span><span class="special">()|</span><span class="identifier">join_for</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.detach3">
+            Member function <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.get_id2">
+            Member function <code class="computeroutput"><span class="identifier">get_id</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.interrupt2">
+            Member function <code class="computeroutput"><span class="identifier">interrupt</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.nativehandle2">
+            Member function <code class="computeroutput"><span class="identifier">native_handle</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ResultType</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">shared_joiner</span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">shared_joiner</span> <span class="identifier">this_type</span><span class="special">;</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">shared_joiner</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">shared_joiner</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+    <span class="identifier">shared_joiner</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">shared_joiner</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">ResultType</span> <span class="identifier">result_type</span><span class="special">;</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Nullary</span><span class="special">></span>
+    <span class="identifier">shared_joiner</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attr</span><span class="special">,</span> <span class="identifier">Nullary</span> <span class="identifier">f</span><span class="special">);</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Nullary</span><span class="special">></span>
+    <span class="identifier">shared_joiner</span><span class="special">(</span><span class="identifier">Nullary</span> <span class="identifier">f</span><span class="special">);</span>
+
+    <span class="identifier">shared_joiner</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">shared_joiner</span><span class="special">></span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="identifier">shared_joiner</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">shared_joiner</span><span class="special">></span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="keyword">operator</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">shared_joiner</span><span class="special">>();</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">shared_joiner</span><span class="special">></span> <span class="identifier">move</span><span class="special">();</span>
+
+    <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">this_type</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span>
+
+    <span class="keyword">bool</span> <span class="identifier">joinable</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">void</span> <span class="identifier">join</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">join_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">TimeDuration</span><span class="special">></span>
+    <span class="keyword">inline</span> <span class="keyword">bool</span> <span class="identifier">join_for</span><span class="special">(</span><span class="identifier">TimeDuration</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+
+    <span class="identifier">result_type</span> <span class="identifier">get</span><span class="special">();</span>
+    <span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()();</span>
+
+    <span class="keyword">bool</span> <span class="identifier">is_ready</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">bool</span> <span class="identifier">has_exception</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">bool</span> <span class="identifier">has_value</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+    <span class="keyword">void</span> <span class="identifier">wait</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">bool</span> <span class="identifier">wait_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">TimeDuration</span><span class="special">></span>
+    <span class="keyword">inline</span> <span class="keyword">bool</span> <span class="identifier">wait_for</span><span class="special">(</span><span class="identifier">TimeDuration</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+    <span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">get_id</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">void</span> <span class="identifier">detach</span><span class="special">();</span>
+    <span class="keyword">void</span> <span class="identifier">interrupt</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">interruption_requested</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">platform</span><span class="special">-</span><span class="identifier">specific</span><span class="special">-</span><span class="identifier">type</span> <span class="identifier">native_handle_type</span><span class="special">;</span>
+    <span class="identifier">native_handle_type</span> <span class="identifier">native_handle</span><span class="special">();</span>
+
+    <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">result_type</span><span class="special">></span> <span class="identifier">get_future</span><span class="special">();</span>
+<span class="special">};</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.destructor"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.destructor" title="
+            shared_joiner Destructor">
+            shared_joiner Destructor</a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">shared_joiner</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  has an associated thread of execution, calls <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>. Destroys <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.swap2"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.swap2" title="
+            Member function swap()">
+            Member function <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">shared_joiner</span><span class="special">&</span> <span class="identifier">other</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Exchanges the threads of execution associated with <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  and <code class="computeroutput"><span class="identifier">other</span></code>, so
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  is associated with the thread of execution associated with <code class="computeroutput"><span class="identifier">other</span></code> prior to the call, and
+                  vice-versa.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()</span></code>
+                  returns the same value as <code class="computeroutput"><span class="identifier">other</span><span class="special">.</span><span class="identifier">get_id</span><span class="special">()</span></code> prior to the call. <code class="computeroutput"><span class="identifier">other</span><span class="special">.</span><span class="identifier">get_id</span><span class="special">()</span></code>
+                  returns the same value as <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()</span></code> prior to the call.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__get___operator_____"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__get___operator_____" title="Member
+            Function get()|operator()()">Member
+            Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()|</span><span class="keyword">operator</span><span class="special">()()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="identifier">result_type</span> <span class="identifier">get</span><span class="special">();</span>
+<span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Retrieves the value returned by the Nullary function.
+                </p></dd>
+<dt><span class="term">Sychronization:</span></dt>
+<dd><p>
+                  The completion of the call to the operator()() the Nullary function
+                  happens before get() returns.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  If the result type R is a reference, returns the stored reference.
+                  If R is void, there is no return value. Otherwise, returns an rvalue-reference
+                  to the value stored in the asynchronous result.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  the stored exception, if an exception was stored and not retrieved
+                  before.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  It is unspecified what happens when get() is called a second time
+                  on the same shared_joiner.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  unsafe
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__is_ready___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__is_ready___" title="Member
+            Function is_ready()">Member
+            Function <code class="computeroutput"><span class="identifier">is_ready</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">is_ready</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true only if the associated state holds a value or an exception
+                  ready for retrieval.
+                </p></dd>
+<dt><span class="term">Remark:</span></dt>
+<dd><p>
+                  the return value is unspecified after a call to get().
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__has_exception___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__has_exception___" title="Member
+            Function has_exception()">Member
+            Function <code class="computeroutput"><span class="identifier">has_exception</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">has_exception</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true only if is_ready() == true and the associated state contains
+                  an exception.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__has_value___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__has_value___" title="Member
+            Function has_value()">Member
+            Function <code class="computeroutput"><span class="identifier">has_value</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">has_value</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true only if is_ready() == true and the associated state contains
+                  a value.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__wait___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__wait___" title="Member
+            Function wait()">Member
+            Function <code class="computeroutput"><span class="identifier">wait</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">wait</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Blocks until the Nullariry function ends.
+                </p></dd>
+<dt><span class="term">Sychronization:</span></dt>
+<dd><p>
+                  The completion of the call to the operator()() the Nullary function
+                  happens before wait() returns.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  the stored exception, if an exception was stored and not retrieved
+                  before.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  is_ready() == true.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  unsafe
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__wait_until___wait_for___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__wait_until___wait_for___" title="Member
+            Function wait_until()|wait_for()">Member
+            Function <code class="computeroutput"><span class="identifier">wait_until</span><span class="special">()|</span><span class="identifier">wait_for</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">wait_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">TimeDuration</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">wait_for</span><span class="special">(</span><span class="identifier">TimeDuration</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Blocks until the Nullariry function ends.
+                </p></dd>
+<dt><span class="term">Sychronization:</span></dt>
+<dd><p>
+                  The completion of the call to the operator()() the Nullary function
+                  happens before wait() returns.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  If the result type R is a reference, returns the stored reference.
+                  If R is void, there is no return value. Otherwise, returns an rvalue-reference
+                  to the value stored in the asynchronous result.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  the stored exception, if an exception was stored and not retrieved
+                  before.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  is_ready() == true.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  unsafe
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.joinable2"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.joinable2" title="
+            Member function joinable()">
+            Member function <code class="computeroutput"><span class="identifier">joinable</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">joinable</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, <code class="computeroutput"><span class="keyword">false</span></code>
+                  otherwise.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.join2"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.join2" title="
+            Member function join()">
+            Member function <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Preconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()!=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">get_id</span><span class="special">()</span></code>
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, waits for that thread of execution
+                  to complete.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution on entry, that thread of execution
+                  has completed. <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  no longer refers to any thread of execution.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code> if the current
+                  thread of execution is interrupted.
+                </p></dd>
+<dt><span class="term">Notes:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+                  is one of the predefined <span class="emphasis"><em>interruption points</em></span>.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__join_until___join_for___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.member_function__join_until___join_for___" title="Member
+            function join_until()|join_for()">Member
+            function <code class="computeroutput"><span class="identifier">join_until</span><span class="special">()|</span><span class="identifier">join_for</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">join_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">wait_until</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">TimeDuration</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">join_for</span><span class="special">(</span><span class="identifier">TimeDuration</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Preconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()!=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">get_id</span><span class="special">()</span></code>
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, waits for that thread of execution
+                  to complete, the time <code class="computeroutput"><span class="identifier">wait_until</span></code>
+                  has been reach or the specified duration <code class="computeroutput"><span class="identifier">rel_time</span></code>
+                  has elapsed. If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> doesn't refer to a thread of
+                  execution, returns immediately.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution on entry, and that thread of execution
+                  has completed before the call times out, <code class="computeroutput"><span class="keyword">false</span></code>
+                  otherwise.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution on entry, and <code class="computeroutput"><span class="identifier">timed_join</span></code>
+                  returns <code class="computeroutput"><span class="keyword">true</span></code>, that
+                  thread of execution has completed, and <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> no longer refers to any thread
+                  of execution. If this call to <code class="computeroutput"><span class="identifier">timed_join</span></code>
+                  returns <code class="computeroutput"><span class="keyword">false</span></code>, <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  is unchanged.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code> if the current
+                  thread of execution is interrupted.
+                </p></dd>
+<dt><span class="term">Notes:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code>
+                  is one of the predefined <span class="emphasis"><em>interruption points</em></span>.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.detach3"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.detach3" title="
+            Member function detach()">
+            Member function <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">detach</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, that thread of execution becomes
+                  detached, and no longer has an associated <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code>
+                  object.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  no longer refers to any thread of execution.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.get_id2"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.get_id2" title="
+            Member function get_id()">
+            Member function <code class="computeroutput"><span class="identifier">get_id</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">get_id</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code>
+                  that represents that thread. Otherwise returns a default-constructed
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code>.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.interrupt2"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.interrupt2" title="
+            Member function interrupt()">
+            Member function <code class="computeroutput"><span class="identifier">interrupt</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">interrupt</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  If <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a thread of execution, request that the thread will be
+                  interrupted the next time it enters one of the predefined <span class="emphasis"><em>interruption
+                  points</em></span> with interruption enabled, or if it is currently
+                  <span class="emphasis"><em>blocked</em></span> in a call to one of the predefined
+                  <span class="emphasis"><em>interruption points</em></span> with interruption enabled
+                  .
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.nativehandle2"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_joiner___.nativehandle2" title="
+            Member function native_handle()">
+            Member function <code class="computeroutput"><span class="identifier">native_handle</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">platform</span><span class="special">-</span><span class="identifier">specific</span><span class="special">-</span><span class="identifier">type</span> <span class="identifier">native_handle_type</span><span class="special">;</span>
+<span class="identifier">native_handle_type</span> <span class="identifier">native_handle</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Returns an instance of <code class="computeroutput"><span class="identifier">native_handle_type</span></code>
+                  that can be used with platform-specific APIs to manipulate the
+                  underlying implementation. If no such instance exists, <code class="computeroutput"><span class="identifier">native_handle</span><span class="special">()</span></code>
+                  and <code class="computeroutput"><span class="identifier">native_handle_type</span></code>
+                  are not present.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.non_member_swap2"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.non_member_swap2" title="
+          Non-member function swap()">
+          Non-member function <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">shared_joiner</span><span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span><span class="identifier">shared_joiner</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="identifier">lhs</span><span class="special">.</span><span class="identifier">swap</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">)</span></code>.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_" title="Template
+          Class shared_threader">Template
+          Class <code class="computeroutput"><span class="identifier">shared_threader</span></code></a>
+</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_.member_function__shared_threader__attributes___">Member
+            function <code class="computeroutput"><span class="identifier">shared_threader</span><span class="special">::</span><span class="identifier">attributes</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_.metafunction__shared_threader__handle___">Metafunction
+            <code class="computeroutput"><span class="identifier">shared_threader</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_.member_function__shared_threader__fork_">Member
+            function <code class="computeroutput"><span class="identifier">shared_threader</span><span class="special">::</span><span class="identifier">fork</span></code></a></span></dt>
+</dl></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">shared_threader</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attributes</span><span class="special">();</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">shared_joiner</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">shared_joiner</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+    <span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+
+<span class="special">};</span>
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_.member_function__shared_threader__attributes___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_.member_function__shared_threader__attributes___" title="Member
+            function shared_threader::attributes()">Member
+            function <code class="computeroutput"><span class="identifier">shared_threader</span><span class="special">::</span><span class="identifier">attributes</span><span class="special">()</span></code></a>
+</h6></div></div></div>
+<p>
+              Reference to the thread attributes accesor.
+            </p>
+<pre class="programlisting"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">native_handle_attr_type</span><span class="special">&</span> <span class="identifier">attributes</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  A reference to the thread attributes.
+                </p></dd>
+<dt><span class="term">Complexity:</span></dt>
+<dd><p>
+                  constant.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_.metafunction__shared_threader__handle___"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_.metafunction__shared_threader__handle___" title="Metafunction
+            shared_threader::handle<>">Metafunction
+            <code class="computeroutput"><span class="identifier">shared_threader</span><span class="special">::</span><span class="identifier">handle</span><span class="special"><></span></code></a>
+</h6></div></div></div>
+<p>
+              Metafunction that returns the result type of the fork function applied
+              to a shared_threader and the value type.
+            </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">shared_joiner</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Expression:</span></dt>
+<dd><p>
+                  L::handle<T>::type
+                </p></dd>
+<dt><span class="term">Return type:</span></dt>
+<dd><p>
+                  A shared_joiner<T>.
+                </p></dd>
+<dt><span class="term">Complexity:</span></dt>
+<dd><p>
+                  constant.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_.member_function__shared_threader__fork_"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.threader_hpp.template_class__shared_threader_.member_function__shared_threader__fork_" title="Member
+            function shared_threader::fork">Member
+            function <code class="computeroutput"><span class="identifier">shared_threader</span><span class="special">::</span><span class="identifier">fork</span></code></a>
+</h6></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+<span class="identifier">shared_joiner</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+<span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  A shared_joiner to the result of calling a function F.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  create a thread executing the function f. The result of the function
+                  will be stored on the resulting shared_joiner.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.scheduler_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.scheduler_hpp" title="
+        Header <boost/async/scheduler.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">scheduler</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<p>
+          <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span></code> can be seen as a <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+          adding some functions and specializing some traits classes. The functions
+          are:
+        </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            get_future
+          </li>
+<li>
+            interruption_requested
+          </li>
+</ul></div>
+<p>
+          The traits are:
+        </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            asynchronous_completion_token : associating the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code><code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span></code>
+</li>
+<li>
+            partial_specialization_workaround::fork::apply: to call to submit instead
+            of fork.
+          </li>
+</ul></div>
+<p>
+          <code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span></code> is an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+          that models <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>
+          and <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>.
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">scheduler</span> <span class="special">{</span>
+        <span class="keyword">explicit</span> <span class="identifier">scheduler</span><span class="special">(</span>
+            <span class="identifier">tp</span><span class="special">::</span><span class="identifier">poolsize</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">psize</span>
+        <span class="special">);</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+        <span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span><span class="special">></span>
+        <span class="identifier">fork</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Channel</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">get_future</span><span class="special"><</span><span class="identifier">scheduler</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">future_type</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+        <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">);</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Channel</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">>,</span><span class="identifier">T</span><span class="special">></span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+        <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">Channel</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span> <span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">fork</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">>,</span><span class="identifier">F</span><span class="special">></span> <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fork</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">>,</span> <span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span>
+            <span class="identifier">apply</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">Channel</span><span class="special">>&</span> <span class="identifier">ae</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fn</span> <span class="special">);</span>
+        <span class="special">};</span>
+    <span class="special">}</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">get_future</span><span class="special"><</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span><span class="special"><</span><span class="identifier">C</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+        <span class="identifier">shared_future</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">act</span><span class="special">);</span>
+    <span class="special">};</span>
+
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">R</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span><span class="special"><</span><span class="identifier">R</span><span class="special">></span> <span class="special">></span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span>
+<span class="special">}}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.typeof_futures_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_futures_hpp" title="
+        Header <boost/async/typeof/future.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">future</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<p>
+          Include this files instead of <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">futures</span><span class="special">/</span><span class="identifier">future</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+          if you want TypeOf support.
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">futures</span><span class="special">/</span><span class="identifier">future</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="preprocessor">#include</span> <span class="identifier">BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP</span><span class="special">()</span>
+
+<span class="identifier">BOOST_TYPEOF_REGISTER_TEMPLATE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">unique_future</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span>
+<span class="identifier">BOOST_TYPEOF_REGISTER_TEMPLATE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">shared_future</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span>
+<span class="identifier">BOOST_TYPEOF_REGISTER_TEMPLATE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">promise</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span>
+<span class="identifier">BOOST_TYPEOF_REGISTER_TEMPLATE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">packaged_task</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.typeof_launcher_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_launcher_hpp" title="
+        Header <boost/async/typeof/launcher.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">launcher</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<p>
+          Include this files instead of <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">launcher</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+          if you want TypeOf support.
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">launcher</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">future</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="preprocessor">#include</span> <span class="identifier">BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP</span><span class="special">()</span>
+
+<span class="identifier">BOOST_TYPEOF_REGISTER_TYPE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">launcher</span><span class="special">)</span>
+<span class="identifier">BOOST_TYPEOF_REGISTER_TYPE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">shared_launcher</span><span class="special">)</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.typeof_threader_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_threader_hpp" title="
+        Header <boost/async/typeof/threader.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<p>
+          Include this files instead of <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+          if you want TypeOf support.
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="preprocessor">#include</span> <span class="identifier">BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP</span><span class="special">()</span>
+
+<span class="identifier">BOOST_TYPEOF_REGISTER_TYPE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">unique_threader</span><span class="special">)</span>
+<span class="identifier">BOOST_TYPEOF_REGISTER_TEMPLATE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">unique_joiner</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span>
+
+<span class="identifier">BOOST_TYPEOF_REGISTER_TYPE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">shared_threader</span><span class="special">)</span>
+<span class="identifier">BOOST_TYPEOF_REGISTER_TEMPLATE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">shared_joiner</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.typeof_basic_threaderr_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_basic_threaderr_hpp" title="
+        Header <boost/async/typeof/basic_threader.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">basic_threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<p>
+          Include this files instead of <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">basic_threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+          if you want TypeOf support.
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">basic_threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="preprocessor">#include</span> <span class="identifier">BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP</span><span class="special">()</span>
+
+<span class="identifier">BOOST_TYPEOF_REGISTER_TYPE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">basic_threader</span><span class="special">)</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.typeof_scheduler_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.typeof_scheduler_hpp" title="
+        Header <boost/async/typeof/scheduler.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">scheduler</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<p>
+          Include this files instead of <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">scheduler</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+          if you want TypeOf support.
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">scheduler</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="preprocessor">#include</span> <span class="identifier">BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP</span><span class="special">()</span>
+
+<span class="identifier">BOOST_TYPEOF_REGISTER_TEMPLATE</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.ae_act_models_reference.asynchronous_executor_decorator_hpp"></a><a href="ae_act_models_reference.html#toward_boost_async.reference.ae_act_models_reference.asynchronous_executor_decorator_hpp" title="
+        Header <boost/async/asynchronous_executor_decorator.hpp>">
+        Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">asynchronous_executor_decorator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">async</span> <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">Decorator</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">asynchronous_executor_decorator</span> <span class="special">:</span> <span class="identifier">AE</span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">handle</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">handle</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+        <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">handle</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span> <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">fork</span><span class="special">(</span> <span class="identifier">F</span> <span class="identifier">fn</span> <span class="special">);</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">,</span> <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">Decorator</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">get_future</span><span class="special"><</span><span class="identifier">asynchronous_executor_decorator</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="identifier">Decorator</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">future_type</span> <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">get_future</span><span class="special"><</span><span class="identifier">AE</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+        <span class="keyword">typename</span> <span class="identifier">future_type</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">typename</span> <span class="identifier">AE</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">handle</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">&</span> <span class="identifier">j</span><span class="special">);</span>
+    <span class="special">};</span>
+<span class="special">}}</span>
+</pre>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ae_act_framework_reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/reference/concepts.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/reference/concepts.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,1875 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concepts</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../reference.html" title=" Reference">
+<link rel="prev" href="../reference.html" title=" Reference">
+<link rel="next" href="ae_act_framework_reference.html" title="AE/ACT
+      Framework Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="ae_act_framework_reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.reference.concepts"></a>Concepts
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts">Asynchronous
+        Completion Token Concepts</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT">
+          Concept <code class="computeroutput"><span class="identifier">ACT</span></code> </a></span></dt>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT">
+          Concept <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>
+          </a></span></dt>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT">
+          Concept <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>
+          </a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts">Asynchronous
+        Executors Concepts</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_">Concept
+          <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code></a></span></dt>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_">Concept
+          <code class="computeroutput"><span class="identifier">IntrinsicAsynchronousExecutor</span></code></a></span></dt>
+</dl></dd>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts"></a><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts" title="Asynchronous
+        Completion Token Concepts">Asynchronous
+        Completion Token Concepts</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT">
+          Concept <code class="computeroutput"><span class="identifier">ACT</span></code> </a></span></dt>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT">
+          Concept <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>
+          </a></span></dt>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT">
+          Concept <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>
+          </a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT"></a><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT" title="
+          Concept ACT ">
+          Concept <code class="computeroutput"><span class="identifier">ACT</span></code> </a>
+</h5></div></div></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.description"></a><h6>
+<a name="id4820895"></a>
+            Description
+          </h6>
+<p>
+            An <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            allows to wait for the completion of an asynchronous executed operation.
+            An <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            should be <code class="computeroutput"><span class="identifier">Movable</span></code> or
+            <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>. The
+            completion of the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            is undefined at this level. Different models could signal this completion
+            when setting a value or an exception.
+          </p>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.notation"></a><h6>
+<a name="id4820970"></a>
+            Notation
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">act</span></code></span></dt>
+<dd><p>
+                An <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code></span></dt>
+<dd><p>
+                A <code class="computeroutput"><span class="identifier">Nullary</span></code> function
+                with type F
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">abs_time</span></code></span></dt>
+<dd><p>
+                A <code class="computeroutput"><span class="identifier">system_time</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">rel_time</span></code></span></dt>
+<dd><p>
+                A <code class="computeroutput"><span class="identifier">DurationType</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dd><p>
+                A bool
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.expression_requirements"></a><h6>
+<a name="id4821128"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.expression_requirements">Expression
+            requirements</a>
+          </h6>
+<p>
+            A type models a <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            if, the following expressions are valid:
+          </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Return type
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Runtime Complexity
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">wait</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    void
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">wait_until</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span>
+                    <span class="identifier">abs_time</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    bool
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">wait_for</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span>
+                    <span class="identifier">rel_time</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    bool
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.meta_expressions"></a><h6>
+<a name="id4821375"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.meta_expressions">Meta
+            Expressions</a>
+          </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Type
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Compile Time Complexity
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">move_dest_type</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Any
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">move_result</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    MPL boolean
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">is_movable</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    MPL boolean
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">has_future_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    MPL boolean
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">has_thread_if</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    MPL boolean
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.expression_semantics"></a><h6>
+<a name="id4821676"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.expression_semantics">Expression
+            Semantics</a>
+          </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">wait</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Blocks until the <code class="computeroutput"><span class="identifier">act</span></code>
+                    completes
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">wait_until</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span><span class="identifier">abs_time</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Blocks until the <code class="computeroutput"><span class="identifier">act</span></code>
+                    completes or <code class="computeroutput"><span class="identifier">abs_time</span></code>
+                    is reached
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">wait_for</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span><span class="identifier">rel_time</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Blocks until the <code class="computeroutput"><span class="identifier">act</span></code>
+                    completes or <code class="computeroutput"><span class="identifier">rel_time</span></code>
+                    has been elapsed
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.expression__code__phrase_role__identifier__wait__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4821931"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.expression__code__phrase_role__identifier__wait__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">wait</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                Blocks until the <code class="computeroutput"><span class="identifier">act</span></code>
+                completes.
+              </p></dd>
+<dt><span class="term">Synchronization:</span></dt>
+<dd><p>
+                The completion of <code class="computeroutput"><span class="identifier">act</span></code>
+                happens before wait() returns.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                the stored exception, if an exception was stored and not retrieved
+                before.
+              </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                is_ready(act) == true.
+              </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                unsafe
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.expression__code__phrase_role__identifier__b__phrase___phrase_role__special_____phrase___phrase_role__identifier__wait_until__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase__phrase_role__identifier__abs_time__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4822075"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.expression__code__phrase_role__identifier__b__phrase___phrase_role__special_____phrase___phrase_role__identifier__wait_until__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase__phrase_role__identifier__abs_time__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+            <span class="identifier">wait_until</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span><span class="identifier">abs_time</span><span class="special">)</span></code></a>
+          </h6>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">wait_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">abs_time</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">TimeDuration</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">wait_for</span><span class="special">(</span><span class="identifier">TimeDuration</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                Blocks until the <code class="computeroutput"><span class="identifier">act</span></code>
+                completes or <code class="computeroutput"><span class="identifier">abs_time</span></code>
+                is not reached.
+              </p></dd>
+<dt><span class="term">Synchronization:</span></dt>
+<dd><p>
+                The completion of the <code class="computeroutput"><span class="identifier">act</span></code>
+                happens before wait() returns.
+              </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                true only if the function returns because <code class="computeroutput"><span class="identifier">act</span></code>
+                is ready.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                the stored exception, if an exception was stored and not retrieved
+                before.
+              </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                is_ready() == true.
+              </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                unsafe
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.expression__code__phrase_role__identifier__b__phrase___phrase_role__special_____phrase___phrase_role__identifier__wait_for__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase__phrase_role__identifier__rel_time__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4822381"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.expression__code__phrase_role__identifier__b__phrase___phrase_role__special_____phrase___phrase_role__identifier__wait_for__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase__phrase_role__identifier__rel_time__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+            <span class="identifier">wait_for</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span><span class="identifier">rel_time</span><span class="special">)</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                blocks until the <code class="computeroutput"><span class="identifier">act</span></code>
+                completes or <code class="computeroutput"><span class="identifier">rel_time</span></code>
+                has elapsed.
+              </p></dd>
+<dt><span class="term">Synchronization:</span></dt>
+<dd><p>
+                The completion of the <code class="computeroutput"><span class="identifier">act</span></code>
+                happens before wait() returns.
+              </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                true only if the function returns because <code class="computeroutput"><span class="identifier">act</span></code>
+                is ready.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                the stored exception, if an exception was stored and not retrieved
+                before.
+              </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                is_ready() == true.
+              </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                unsafe
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ACT.models"></a><h6>
+<a name="id4822582"></a>
+            Models
+          </h6>
+<div class="itemizedlist"><ul type="disc">
+<li><code class="computeroutput"><span class="identifier">unique_future</span></code></li>
+<li><code class="computeroutput"><span class="identifier">shared_future</span></code></li>
+<li><code class="computeroutput"><span class="identifier">unique_joiner</span></code></li>
+<li><code class="computeroutput"><span class="identifier">shared_joiner</span></code></li>
+<li><code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span></code></li>
+<li><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT"></a><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT" title="
+          Concept FutureBasedACT
+          ">
+          Concept <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>
+          </a>
+</h5></div></div></div>
+<p>
+            The completion of the <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>
+            is undefined at this level but occurs usually after a set_value or set_exception
+            on the associated promise.
+          </p>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.description"></a><h6>
+<a name="id4822740"></a>
+            Description
+          </h6>
+<p>
+            An <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code> is
+            a <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            that associates a value expected on the its completion.
+          </p>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.notation"></a><h6>
+<a name="id4822786"></a>
+            Notation
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">act</span></code></span></dt>
+<dd><p>
+                An <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">cact</span></code></span></dt>
+<dd><p>
+                An const <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code></span></dt>
+<dd><p>
+                A <code class="computeroutput"><span class="identifier">Nullary</span></code> function
+                with type F
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">abs_time</span></code></span></dt>
+<dd><p>
+                A <code class="computeroutput"><span class="identifier">system_time</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">rel_time</span></code></span></dt>
+<dd><p>
+                A <code class="computeroutput"><span class="identifier">DurationType</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dd><p>
+                A bool
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">v</span></code></span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">act</span><span class="special">)>::</span><span class="identifier">move_dest_type</span></code>
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression_requirements"></a><h6>
+<a name="id4823024"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression_requirements">Expression
+            requirements</a>
+          </h6>
+<p>
+            A type models an <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>
+            if, in addition to being an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>,
+            the following expressions are valid:
+          </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Return type
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Runtime Complexity
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">v</span> <span class="special">=</span>
+                    <span class="identifier">get</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">act</span><span class="special">)>::</span><span class="identifier">move_dest_type</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">is_ready</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    bool
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">has_exception</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    bool
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">has_value</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    bool
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression_semantics"></a><h6>
+<a name="id4823360"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression_semantics">Expression
+            Semantics</a>
+          </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">v</span> <span class="special">=</span>
+                    <span class="identifier">get</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Blocks until <code class="computeroutput"><span class="identifier">act</span></code>
+                    contains a value and returns the stored value
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">is_ready</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Is true only if <code class="computeroutput"><span class="identifier">cact</span></code>
+                    holds a value or an exception ready for retrieval.
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">has_exception</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Is true only if <code class="computeroutput"><span class="identifier">cact</span></code>
+                    contains an exception.
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">has_value</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Is true only if <code class="computeroutput"><span class="identifier">cact</span></code>
+                    contains a value
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression__code__phrase_role__identifier__v__phrase__phrase_role__special_____phrase__phrase_role__identifier__get__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4823648"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression__code__phrase_role__identifier__v__phrase__phrase_role__special_____phrase__phrase_role__identifier__get__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">v</span><span class="special">=</span><span class="identifier">get</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                Retrieves the value returned by the Nullary function.
+              </p></dd>
+<dt><span class="term">Synchronization:</span></dt>
+<dd><p>
+                The completion of the <code class="computeroutput"><span class="identifier">act</span></code>
+                happens before get() returns.
+              </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                Depending on the nature of the ACT returns a <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">move_dest_type</span></code>.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                the stored exception, if an exception was stored and not retrieved
+                before.
+              </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                if <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">move_result</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>
+                it is unspecified what happens when <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code> is called a second time on the
+                same shared_joiner.
+              </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                unsafe
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression__code__phrase_role__identifier__b__phrase___phrase_role__special_____phrase___phrase_role__identifier__is_ready__phrase__phrase_role__special_____phrase__phrase_role__identifier__cact__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4823883"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression__code__phrase_role__identifier__b__phrase___phrase_role__special_____phrase___phrase_role__identifier__is_ready__phrase__phrase_role__special_____phrase__phrase_role__identifier__cact__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+            <span class="identifier">is_ready</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                true only if <code class="computeroutput"><span class="identifier">cact</span></code>
+                holds a value or an exception ready for retrieval.
+              </p></dd>
+<dt><span class="term">Remark:</span></dt>
+<dd><p>
+                if <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">move_result</span></code> is true the return
+                value could be unspecified after a call to <code class="computeroutput"><span class="identifier">get</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code>.
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression__code__phrase_role__identifier__b__phrase___phrase_role__special_____phrase___phrase_role__identifier__has_exception__phrase__phrase_role__special_____phrase__phrase_role__identifier__cact__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4824041"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression__code__phrase_role__identifier__b__phrase___phrase_role__special_____phrase___phrase_role__identifier__has_exception__phrase__phrase_role__special_____phrase__phrase_role__identifier__cact__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+            <span class="identifier">has_exception</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                true only if <code class="computeroutput"><span class="identifier">is_ready</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code> == true and <code class="computeroutput"><span class="identifier">cact</span></code>
+                contains an exception.
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression__code__phrase_role__identifier__b__phrase___phrase_role__special_____phrase___phrase_role__identifier__has_value__phrase__phrase_role__special_____phrase__phrase_role__identifier__cact__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4824160"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.expression__code__phrase_role__identifier__b__phrase___phrase_role__special_____phrase___phrase_role__identifier__has_value__phrase__phrase_role__special_____phrase__phrase_role__identifier__cact__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+            <span class="identifier">has_value</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                true only if <code class="computeroutput"><span class="identifier">is_ready</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code> == true and <code class="computeroutput"><span class="identifier">cact</span></code>
+                contains a value.
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.FutureBasedACT.models"></a><h6>
+<a name="id4824277"></a>
+            Models
+          </h6>
+<div class="itemizedlist"><ul type="disc">
+<li><code class="computeroutput"><span class="identifier">unique_future</span></code></li>
+<li><code class="computeroutput"><span class="identifier">shared_future</span></code></li>
+<li><code class="computeroutput"><span class="identifier">unique_joiner</span></code></li>
+<li><code class="computeroutput"><span class="identifier">shared_joiner</span></code></li>
+<li><code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span></code></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT"></a><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT" title="
+          Concept ThreadBasedACT
+          ">
+          Concept <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>
+          </a>
+</h5></div></div></div>
+<p>
+            The completion of the <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code>
+            is undefined at this level but occurs usually after a function finish.
+          </p>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.description"></a><h6>
+<a name="id4824415"></a>
+            Description
+          </h6>
+<p>
+            An <code class="computeroutput"><span class="identifier">ThreadBasedACT</span></code> is
+            a <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            that provides a thread like interface.
+          </p>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.notation"></a><h6>
+<a name="id4824460"></a>
+            Notation
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">act</span></code></span></dt>
+<dd><p>
+                An <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">cact</span></code></span></dt>
+<dd><p>
+                A const <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">cact</span></code></span></dt>
+<dd><p>
+                An const <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code></span></dt>
+<dd><p>
+                A <code class="computeroutput"><span class="identifier">Nullary</span></code> function
+                with type F
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">abs_time</span></code></span></dt>
+<dd><p>
+                A <code class="computeroutput"><span class="identifier">system_time</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">rel_time</span></code></span></dt>
+<dd><p>
+                A <code class="computeroutput"><span class="identifier">DurationType</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dd><p>
+                A bool
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">id</span></code></span></dt>
+<dd><p>
+                An <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code><span class="special">>::</span><span class="identifier">id_type</span></code>
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression_requirements"></a><h6>
+<a name="id4824721"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression_requirements">Expression
+            requirements</a>
+          </h6>
+<p>
+            A type models an <code class="computeroutput"><span class="identifier">FutureBasedACT</span></code>
+            if, in addition to being an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>,
+            the following expressions are valid:
+          </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Return type
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Runtime Complexity
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">joinable</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    bool
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">join</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    void
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">join_until</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span>
+                    <span class="identifier">abs_time</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    bool
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">join_for</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span>
+                    <span class="identifier">rel_time</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    bool
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">detach</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    void
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">interrupt</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    void
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">interruption_requested</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    bool
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">id</span> <span class="special">=</span>
+                    <span class="identifier">get_id</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code><span class="special">>::</span><span class="identifier">id_type</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression_semantics"></a><h6>
+<a name="id4825270"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression_semantics">Expression
+            Semantics</a>
+          </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">joinable</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    true if <code class="computeroutput"><span class="identifier">cact</span></code>
+                    refers to a 'thread of execution', false otherwise
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">join</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    waits for the associated 'thread of execution' to complete
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">join_until</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span>
+                    <span class="identifier">abs_time</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    waits for the associated 'thread of execution' to complete or
+                    the time <code class="computeroutput"><span class="identifier">wait_until</span></code>
+                    has been reach.
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">join_for</span><span class="special">(</span><span class="identifier">act</span><span class="special">,</span>
+                    <span class="identifier">rel_time</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    waits for the associated 'thread of execution' to complete or
+                    the specified duration <code class="computeroutput"><span class="identifier">rel_time</span></code>
+                    has elapsed
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">detach</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    the associated 'thread of execution' becomes detached, and no
+                    longer has an associated one
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">interrupt</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    request that the associated 'thread of execution' be interrupted
+                    the next time it enters one of the predefined interruption points
+                    with interruption enabled, or if it is currently blocked in a
+                    call to one of the predefined interruption points with interruption
+                    enabled
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">b</span> <span class="special">=</span>
+                    <span class="identifier">interruption_requested</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    true if interruption has been requested for the associated 'thread
+                    of execution', false otherwise.
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">id</span> <span class="special">=</span>
+                    <span class="identifier">get_id</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    an instance of <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code><span class="special">>::</span><span class="identifier">id_type</span></code>
+                    that represents the associated 'thread of execution'.
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__b__phrase__phrase_role__special_____phrase__phrase_role__identifier__joinable__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4825804"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__b__phrase__phrase_role__special_____phrase__phrase_role__identifier__joinable__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">b</span><span class="special">=</span><span class="identifier">joinable</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                true if <code class="computeroutput"><span class="identifier">act</span></code> refers
+                to a 'thread of execution', false otherwise
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                Nothing
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__join__phrase__phrase_role__special______phrase___code_"></a><h6>
+<a name="id4825916"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__join__phrase__phrase_role__special______phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Preconditions:</span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="identifier">get_id</span><span class="special">(</span><span class="identifier">act</span><span class="special">)!=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">get_current_id</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>()</span></code>
+              </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                If <code class="computeroutput"><span class="identifier">act</span></code> refers to
+                a thread of execution, waits for that 'thread of execution' to complete.
+              </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                If <code class="computeroutput"><span class="identifier">act</span></code> refers to
+                a 'thread of execution' on entry, that 'thread of execution' has
+                completed. <code class="computeroutput"><span class="identifier">act</span></code> no
+                longer refers to any 'thread of execution'.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code> if the current
+                thread of execution is interrupted.
+              </p></dd>
+<dt><span class="term">Notes:</span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+                is one of the predefined <span class="emphasis"><em>interruption points</em></span>.
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__b__phrase__phrase_role__special_____phrase__phrase_role__identifier__join_until__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special______phrase__phrase_role__identifier__b__phrase__phrase_role__special_____phrase__phrase_role__identifier__join_for__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4826171"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__b__phrase__phrase_role__special_____phrase__phrase_role__identifier__join_until__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special______phrase__phrase_role__identifier__b__phrase__phrase_role__special_____phrase__phrase_role__identifier__join_for__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">b</span><span class="special">=</span><span class="identifier">join_until</span><span class="special">(</span><span class="identifier">act</span><span class="special">)|</span><span class="identifier">b</span><span class="special">=</span><span class="identifier">join_for</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code></a>
+          </h6>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">join_until</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">system_time</span><span class="special">&</span> <span class="identifier">wait_until</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">TimeDuration</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">join_for</span><span class="special">(</span><span class="identifier">TimeDuration</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Preconditions:</span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="identifier">get_id</span><span class="special">(</span><span class="identifier">act</span><span class="special">)!=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">get_current_id</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>()</span></code>
+              </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                If <code class="computeroutput"><span class="identifier">act</span></code> refers to
+                a 'thread of execution', waits for that thread of execution to complete,
+                the time <code class="computeroutput"><span class="identifier">wait_until</span></code>
+                has been reach or the specified duration <code class="computeroutput"><span class="identifier">rel_time</span></code>
+                has elapsed. If <code class="computeroutput"><span class="identifier">act</span></code>
+                doesn't refer to a 'thread of execution', returns immediately.
+              </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="identifier">act</span></code> refers to a thread of execution
+                on entry, and that thread of execution has completed before the call
+                times out, <code class="computeroutput"><span class="keyword">false</span></code> otherwise.
+              </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                If <code class="computeroutput"><span class="identifier">act</span></code> refers to
+                a thread of execution on entry, and <code class="computeroutput"><span class="identifier">timed_join</span></code>
+                returns <code class="computeroutput"><span class="keyword">true</span></code>, that thread
+                of execution has completed, and <code class="computeroutput"><span class="identifier">act</span></code>
+                no longer refers to any thread of execution. If this call to <code class="computeroutput"><span class="identifier">timed_join</span></code> returns <code class="computeroutput"><span class="keyword">false</span></code>, <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> is unchanged.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code> if the current
+                thread of execution is interrupted.
+              </p></dd>
+<dt><span class="term">Notes:</span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="identifier">join_until</span><span class="special">()</span></code>
+                is one of the predefined <span class="emphasis"><em>interruption points</em></span>.
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__detach__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4826739"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__detach__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">detach</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                If <code class="computeroutput"><span class="identifier">act</span></code> refers to
+                a 'thread of execution', that 'thread of execution' becomes detached,
+                and no longer has an associated thread object.
+              </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="identifier">act</span></code> no longer refers
+                to any 'thread of execution'.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                Nothing
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__get_id__phrase__phrase_role__special_____phrase__phrase_role__identifier__cact__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4758264"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__get_id__phrase__phrase_role__special_____phrase__phrase_role__identifier__cact__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">get_id</span><span class="special">(</span><span class="identifier">cact</span><span class="special">)</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                If <code class="computeroutput"><span class="identifier">act</span></code> refers to
+                a 'thread of execution', an instance of <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code><span class="special">>::</span><span class="identifier">id_type</span></code>
+                that represents that <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>.
+                Otherwise returns a default-constructed <code class="computeroutput"><span class="identifier">act_traits</span><span class="special"><</span><code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code><span class="special">>::</span><span class="identifier">id_type</span></code>.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                Nothing
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__interrupt__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4827181"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__interrupt__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">interrupt</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                If <code class="computeroutput"><span class="identifier">act</span></code> refers to
+                a 'thread of execution', request that the 'thread of execution' will
+                be interrupted the next time it enters one of the predefined <span class="emphasis"><em>interruption
+                points</em></span> with interruption enabled, or if it is currently
+                <span class="emphasis"><em>blocked</em></span> in a call to one of the predefined
+                <span class="emphasis"><em>interruption points</em></span> with interruption enabled
+                .
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                Nothing
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__h__phrase___phrase_role__special_____phrase___phrase_role__identifier__native_handle__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_"></a><h6>
+<a name="id4827299"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.expression__code__phrase_role__identifier__h__phrase___phrase_role__special_____phrase___phrase_role__identifier__native_handle__phrase__phrase_role__special_____phrase__phrase_role__identifier__act__phrase__phrase_role__special_____phrase___code_">Expression
+            <code class="computeroutput"><span class="identifier">h</span> <span class="special">=</span>
+            <span class="identifier">native_handle</span><span class="special">(</span><span class="identifier">act</span><span class="special">)</span></code></a>
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                Returns an instance of <code class="computeroutput"><span class="identifier">native_handle_type</span></code>
+                that can be used with platform-specific APIs to manipulate the underlying
+                implementation. If no such instance exists, <code class="computeroutput"><span class="identifier">native_handle</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">native_handle_type</span></code>
+                are not present.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                Nothing.
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_completion_token_concepts.ThreadBasedACT.models"></a><h6>
+<a name="id4827446"></a>
+            Models
+          </h6>
+<div class="itemizedlist"><ul type="disc">
+<li><code class="computeroutput"><span class="identifier">unique_joiner</span></code></li>
+<li><code class="computeroutput"><span class="identifier">shared_joiner</span></code></li>
+<li><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></li>
+<li><code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">task</span></code></li>
+</ul></div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts"></a><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts" title="Asynchronous
+        Executors Concepts">Asynchronous
+        Executors Concepts</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_">Concept
+          <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code></a></span></dt>
+<dt><span class="section"><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_">Concept
+          <code class="computeroutput"><span class="identifier">IntrinsicAsynchronousExecutor</span></code></a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_"></a><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_" title="Concept
+          AsynchronousExecutor">Concept
+          <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code></a>
+</h5></div></div></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_.description"></a><h6>
+<a name="id4827599"></a>
+            Description
+          </h6>
+<p>
+            An <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+            executes asynchronously a function and returns an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+            when calling the fork function on it.
+          </p>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_.notation"></a><h6>
+<a name="id4827652"></a>
+            Notation
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">ae</span></code></span></dt>
+<dd><p>
+                An <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code></span></dt>
+<dd><p>
+                A <code class="computeroutput"><span class="identifier">Nullary</span></code> function
+                with type F
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">act</span></code></span></dt>
+<dd><p>
+                An <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_.expression_requirements"></a><h6>
+<a name="id4827774"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_.expression_requirements">Expression
+            requirements</a>
+          </h6>
+<p>
+            A type models a <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+            if, the following expressions are valid:
+          </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Return type
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Runtime Complexity
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">__fork__</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span>
+                    <span class="identifier">f</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">get_future</span><span class="special"><</span><span class="identifier">AE</span><span class="special">>()(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    inherits from <code class="computeroutput"><span class="identifier">unique_future</span><span class="special">|</span><span class="identifier">shared_future</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">asynchronous_completion_token</span><span class="special"><</span><span class="identifier">AE</span><span class="special">,</span> <span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Model of <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                    satisfying <code class="computeroutput"><span class="identifier">__act_value</span><span class="special"><</span><span class="identifier">ACT</span><span class="special">>::</span><span class="identifier">type</span></code>
+                    is <code class="computeroutput"><span class="identifier">T</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_.expression_semantics"></a><h6>
+<a name="id4828109"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_.expression_semantics">Expression
+            Semantics</a>
+          </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">act</span> <span class="special">=</span>
+                    <span class="identifier">__fork__</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span>
+                    <span class="identifier">f</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    request <code class="computeroutput"><span class="identifier">ae</span></code> to
+                    execute asynchronously the function <code class="computeroutput"><span class="identifier">f</span></code>and
+                    returns an <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                  </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">get_future</span><span class="special"><</span><span class="identifier">AE</span><span class="special">>()(</span><span class="identifier">act</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    gets a reference to a inherits from <code class="computeroutput"><span class="identifier">unique_future</span><span class="special">|</span><span class="identifier">shared_future</span></code>
+                  </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_.constraints"></a><h6>
+<a name="id4828335"></a>
+            Constraints
+          </h6>
+<p>
+            The following constraints applies:
+          </p>
+<div class="itemizedlist"><ul type="disc"><li><code class="computeroutput"><span class="identifier">act_value</span><span class="special"><</span><code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">==</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()::</span><span class="identifier">type</span><span class="special">></span></code></li></ul></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__asynchronousexecutor_.models"></a><h6>
+<a name="id4828447"></a>
+            Models
+          </h6>
+<div class="itemizedlist"><ul type="disc">
+<li><code class="computeroutput"><span class="identifier">basic_threader</span></code></li>
+<li><code class="computeroutput"><span class="identifier">unique_threader</span></code></li>
+<li><code class="computeroutput"><span class="identifier">shared_threader</span></code></li>
+<li><code class="computeroutput"><span class="identifier">launcher</span></code></li>
+<li><code class="computeroutput"><span class="identifier">shared_launcher</span></code></li>
+<li><code class="computeroutput"><span class="identifier">scheduler</span></code></li>
+<li><code class="computeroutput"><span class="identifier">tp</span><span class="special">::</span><span class="identifier">pool</span></code></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_"></a><a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_" title="Concept
+          IntrinsicAsynchronousExecutor">Concept
+          <code class="computeroutput"><span class="identifier">IntrinsicAsynchronousExecutor</span></code></a>
+</h5></div></div></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_.description"></a><h6>
+<a name="id4828610"></a>
+            Description
+          </h6>
+<p>
+            The default fork implementation put some requirements in its <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code> parameter. This
+            concept is related to this. An <code class="computeroutput"><span class="identifier">IntrinsicAsynchronousExecutor</span></code>
+            is <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+            that works well with the default implementation of <span class="underline">_fork</span>_.
+          </p>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_.notation"></a><h6>
+<a name="id4828681"></a>
+            Notation
+          </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">ae</span></code></span></dt>
+<dd><p>
+                An <code class="computeroutput"><span class="identifier">IntrinsicAsynchronousExecutor</span></code>
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code></span></dt>
+<dd><p>
+                A <code class="computeroutput"><span class="identifier">Nullary</span></code> function
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_.expression_requirements"></a><h6>
+<a name="id4828775"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_.expression_requirements">Expression
+            requirements</a>
+          </h6>
+<p>
+            A type models an <code class="computeroutput"><span class="identifier">IntrinsicAsynchronousExecutor</span></code>
+            if, in addition to being an <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>,
+            the following expressions are valid:
+          </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Return type
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Runtime Complexity
+                  </p>
+                  </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">ae</span><span class="special">.</span><span class="identifier">fork</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">handle</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr></tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_.meta_expressions"></a><h6>
+<a name="id4828972"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_.meta_expressions">Meta
+            Expressions</a>
+          </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Model Of
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Compile Time Complexity
+                  </p>
+                  </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">handle</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">F</span><span class="special">()>::</span><span class="identifier">type</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                  </td>
+</tr></tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_.expression_semantics"></a><h6>
+<a name="id4829118"></a>
+            <a href="concepts.html#toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_.expression_semantics">Expression
+            Semantics</a>
+          </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                  </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                  </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">ae</span><span class="special">.</span><span class="identifier">fork</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></code>
+                  </p>
+                  </td>
+<td>
+                  <p>
+                    executes asynchronously the function <code class="computeroutput"><span class="identifier">f</span></code>
+                    and returns a <code class="computeroutput"><span class="identifier">handle</span></code>
+                  </p>
+                  </td>
+</tr></tbody>
+</table></div>
+<a name="toward_boost_async.reference.concepts.asynchronous_executors_concepts.concept__intrinsicasynchronousexecutor_.models"></a><h6>
+<a name="id4829249"></a>
+            Models
+          </h6>
+<div class="itemizedlist"><ul type="disc">
+<li><code class="computeroutput"><span class="identifier">basic_threader</span></code></li>
+<li><code class="computeroutput"><span class="identifier">unique_threader</span></code></li>
+<li><code class="computeroutput"><span class="identifier">shared_threader</span></code></li>
+<li><code class="computeroutput"><span class="identifier">launcher</span></code></li>
+<li><code class="computeroutput"><span class="identifier">shared_launcher</span></code></li>
+<li><code class="computeroutput"><span class="identifier">scheduler</span></code></li>
+</ul></div>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="ae_act_framework_reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/users_guide.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/users_guide.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Users'Guide</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../index.html" title="Toward Boost Async">
+<link rel="up" href="../index.html" title="Toward Boost Async">
+<link rel="prev" href="overview/motivation.html" title=" Motivation">
+<link rel="next" href="users_guide/getting_started.html" title=" Getting
+      Started">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="overview/motivation.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="users_guide/getting_started.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="toward_boost_async.users_guide"></a> Users'Guide
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="users_guide/getting_started.html"> Getting
+      Started</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="users_guide/getting_started.html#toward_boost_async.users_guide.getting_started.install">
+        Installing Async</a></span></dt>
+<dt><span class="section"><a href="users_guide/getting_started.html#toward_boost_async.users_guide.getting_started.async_hello_world_">Async
+        Hello World!</a></span></dt>
+<dt><span class="section"><a href="users_guide/getting_started.html#toward_boost_async.users_guide.getting_started.multiple_algorithms">Multiple
+        algorithms</a></span></dt>
+</dl></dd>
+<dt><span class="section"> Tutorial</span></dt>
+<dd><dl><dt><span class="section"><a href="users_guide/tutorial.html#toward_boost_async.users_guide.tutorial.ae_act_framework">AE/ACT
+        framework</a></span></dt></dl></dd>
+<dt><span class="section"> References</span></dt>
+<dt><span class="section"> Glossary</span></dt>
+</dl></div>
+<p>
+      [/
+    </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="overview/motivation.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="users_guide/getting_started.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/bibliography.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/bibliography.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,80 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> References</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../users_guide.html" title=" Users'Guide">
+<link rel="prev" href="tutorial.html" title=" Tutorial">
+<link rel="next" href="glossary.html" title=" Glossary">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="glossary.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.users_guide.bibliography"></a> References
+</h3></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1883.pdf" target="_top">N1833
+        - Preliminary Threading Library Proposal for TR2</a></span></dt>
+<dd><p>
+          </p></dd>
+<dt><span class="term"><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2185.html" target="_top">N2185
+        - Proposed Text for Parallel Task Execution</a></span></dt>
+<dd><p>
+          </p></dd>
+<dt><span class="term"><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2276.html" target="_top">N2276
+        - Thread Pools and Futures</a></span></dt>
+<dd><p>
+          </p></dd>
+<dt><span class="term"><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2802.html" target="_top">N2802:
+        A plea to reconsider detach-on-destruction for thread objects</a> </span></dt>
+<dd><p>
+          </p></dd>
+<dt><span class="term"><a href="http://www.boostpro.com/vault/index.php?action=downloadfile&filename=boost-threadpool.3.tar.gz&directory=Concurrent%20Programming&" target="_top">Boost.ThreadPool
+        (O. Kowalke)</a></span></dt>
+<dd><p>
+          </p></dd>
+<dt><span class="term"><a href="http://www.justsoftwaresolutions.co.uk/threading/free-implementation-of-c++-futures.html" target="_top">Boost.Futures
+        (A. Williams)</a></span></dt>
+<dd><p>
+          </p></dd>
+<dt><span class="term"><a href="http://www.boost.org/libs/thread" target="_top">Boost.Thread
+        (A. Williams)</a></span></dt>
+<dd><p>
+          </p></dd>
+<dt><span class="term"><a href="http://www.mr-edd.co.uk/?page_id=58" target="_top">async
+        (Edd )</a></span></dt>
+<dd><p>
+          </p></dd>
+</dl>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="glossary.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/getting_started.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/getting_started.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,301 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Getting
+      Started</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../users_guide.html" title=" Users'Guide">
+<link rel="prev" href="../users_guide.html" title=" Users'Guide">
+<link rel="next" href="tutorial.html" title=" Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../users_guide.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.users_guide.getting_started"></a><a href="getting_started.html" title=" Getting
+      Started"> Getting
+      Started</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="getting_started.html#toward_boost_async.users_guide.getting_started.install">
+        Installing Async</a></span></dt>
+<dt><span class="section"><a href="getting_started.html#toward_boost_async.users_guide.getting_started.async_hello_world_">Async
+        Hello World!</a></span></dt>
+<dt><span class="section"><a href="getting_started.html#toward_boost_async.users_guide.getting_started.multiple_algorithms">Multiple
+        algorithms</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.users_guide.getting_started.install"></a><a href="getting_started.html#toward_boost_async.users_guide.getting_started.install" title="
+        Installing Async">
+        Installing Async</a>
+</h4></div></div></div>
+<a name="toward_boost_async.users_guide.getting_started.install.getting_boost_async"></a><h5>
+<a name="id4818933"></a>
+          <a href="getting_started.html#toward_boost_async.users_guide.getting_started.install.getting_boost_async">Getting
+          Boost.Async</a>
+        </h5>
+<p>
+          You can get the last stable release of <span class="bold"><strong>Boost.Async</strong></span>
+          by downloading <code class="literal">async.zip</code> from the <a href="http://www.boost-consulting.com/vault/index.php?directory=Concurrent%20Programming" target="_top">Boost
+          Vault</a>
+        </p>
+<p>
+          You can also access the latest (unstable?) state from the <a href="https://svn.boost.org/svn/boost/sandbox/async" target="_top">Boost
+          Sandbox</a>.
+        </p>
+<a name="toward_boost_async.users_guide.getting_started.install.building_boost_async"></a><h5>
+<a name="id4818986"></a>
+          <a href="getting_started.html#toward_boost_async.users_guide.getting_started.install.building_boost_async">Building
+          Boost.Async</a>
+        </h5>
+<p>
+          <span class="bold"><strong>Boost.Async</strong></span> is a header only library.
+        </p>
+<a name="toward_boost_async.users_guide.getting_started.install.build_requirements"></a><h5>
+<a name="id4819016"></a>
+          <a href="getting_started.html#toward_boost_async.users_guide.getting_started.install.build_requirements">Build
+          Requirements</a>
+        </h5>
+<p>
+          <span class="bold"><strong>Boost.Async</strong></span> depends on Boost. You must
+          use either Boost version 1.39.x or the version in SVN trunk. In particular,
+          <span class="bold"><strong>Boost.Async</strong></span> depends on:
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Boost.Bind</span></dt>
+<dd><p>
+              for bind, ...
+            </p></dd>
+<dt><span class="term">Boost.Config</span></dt>
+<dd><p>
+              for ??? and abi_prefic_sufix, ...
+            </p></dd>
+<dt><span class="term">Boost.Fusion</span></dt>
+<dd><p>
+              for tuples, and sequence algorithms ...
+            </p></dd>
+<dt><span class="term">Boost.MPL</span></dt>
+<dd><p>
+              for transform, ...
+            </p></dd>
+<dt><span class="term">Boost.Preprocesor</span></dt>
+<dd><p>
+              to simulate variadic templates , ...
+            </p></dd>
+<dt><span class="term">Boost.SmartPtr</span></dt>
+<dd><p>
+              for shared_ptr, ...
+            </p></dd>
+<dt><span class="term">Boost.Threads</span></dt>
+<dd><p>
+              for thread, mutex, condition_variable, ...
+            </p></dd>
+<dt><span class="term">Boost.TypeTrais</span></dt>
+<dd><p>
+              for is_void, remove_references, ...
+            </p></dd>
+<dt><span class="term">Boost.TypeOf</span></dt>
+<dd><p>
+              to register the ACT types.
+            </p></dd>
+<dt><span class="term">Boost.Utility</span></dt>
+<dd><p>
+              for result_of, enable_if...
+            </p></dd>
+</dl>
+</div>
+<p>
+          In addition it depends on the following libraries that are not yet accepted
+          on Boost
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Boost.Futures</span></dt>
+<dd><p>
+              for futures
+            </p></dd>
+<dt><span class="term">Boost.ThreadPool</span></dt>
+<dd><p>
+              Only when using the <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+              boost::tp::pool and the <code class="computeroutput"><span class="identifier">AsynchronousCompletionToken</span></code>
+              boost::tp::task
+            </p></dd>
+</dl>
+</div>
+<p>
+          And also will depend on a near future, conditionally, on the following
+          libraries that are even not submitted to Boost.
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Boost.Chrono</span></dt>
+<dd><p>
+              for time and duration
+            </p></dd>
+<dt><span class="term">Boost.Move</span></dt>
+<dd><p>
+              to emulate the move semantic.
+            </p></dd>
+<dt><span class="term">Boost.SmartPtr.UniquePtr</span></dt>
+<dd><p>
+              for unique_ptr, ...
+            </p></dd>
+</dl>
+</div>
+<a name="toward_boost_async.users_guide.getting_started.install.exceptions_safety"></a><h5>
+<a name="id4819392"></a>
+          <a href="getting_started.html#toward_boost_async.users_guide.getting_started.install.exceptions_safety">Exceptions
+          safety</a>
+        </h5>
+<p>
+          All functions in the library are exception-neutral and provide strong guarantee
+          of exception safety as long as the underlying parameters provide it.
+        </p>
+<a name="toward_boost_async.users_guide.getting_started.install.thread_safety"></a><h5>
+<a name="id4819419"></a>
+          <a href="getting_started.html#toward_boost_async.users_guide.getting_started.install.thread_safety">Thread
+          safety</a>
+        </h5>
+<p>
+          All functions in the library are thread-unsafe except when noted explicitly.
+        </p>
+<a name="toward_boost_async.users_guide.getting_started.install.tested_compilers"></a><h5>
+<a name="id4819444"></a>
+          <a href="getting_started.html#toward_boost_async.users_guide.getting_started.install.tested_compilers">Tested
+          compilers</a>
+        </h5>
+<p>
+          Currently, <span class="bold"><strong>Boost.Async</strong></span> has been tested
+          in the following compilers/platforms:
+        </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+            GCC 3.4.4 Cygwin
+          </li>
+<li>
+            GCC 3.4.6 Linux
+          </li>
+<li>
+            GCC 4.1.2 Linux
+          </li>
+</ul></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Please send any questions, comments and bug reports to boost <at>
+            lists <dot> boost <dot> org.
+          </p></td></tr>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.users_guide.getting_started.async_hello_world_"></a><a href="getting_started.html#toward_boost_async.users_guide.getting_started.async_hello_world_" title="Async
+        Hello World!">Async
+        Hello World!</a>
+</h4></div></div></div>
+<p>
+          This is a little bit more than a Hello World! example. It will also say
+          Bye, Bye!
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">basic_threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+
+<span class="keyword">namespace</span> <span class="identifier">basync</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">;</span>
+
+<span class="keyword">void</span> <span class="identifier">my_thread</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Hello World!"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">::</span><span class="identifier">basic_threader</span> <span class="identifier">ae</span><span class="special">;</span>
+    <span class="identifier">basync</span><span class="special">::</span><span class="identifier">wait_for_all</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">my_thread</span><span class="special">);</span>
+    <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<pre class="programlisting">Hello World!
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.users_guide.getting_started.multiple_algorithms"></a><a href="getting_started.html#toward_boost_async.users_guide.getting_started.multiple_algorithms" title="Multiple
+        algorithms">Multiple
+        algorithms</a>
+</h4></div></div></div>
+<p>
+          This example shows how to launch several algorithms and wait only for the
+          more efficient.
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">typeof</span><span class="special">/</span><span class="identifier">threader</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">async</span><span class="special">/</span><span class="identifier">wait_for_any</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+
+<span class="keyword">namespace</span> <span class="identifier">basync</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">async</span><span class="special">;</span>
+
+<span class="keyword">int</span> <span class="identifier">my_thread1</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">sleep</span><span class="special">(</span><span class="number">3</span><span class="special">);</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"1 thread_id="</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">get_id</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">int</span> <span class="identifier">my_thread2</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">sleep</span><span class="special">(</span><span class="number">1</span><span class="special">);</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"2 thread_id="</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">get_id</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">int</span> <span class="identifier">my_thread3</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">sleep</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"3 thread_id="</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">get_id</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">basync</span><span class="special">::</span><span class="identifier">shared_threader</span> <span class="identifier">ae</span><span class="special">;</span>
+    <span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">res</span><span class="special">,</span><span class="identifier">basync</span><span class="special">::</span><span class="identifier">wait_for_any</span><span class="special">(</span><span class="identifier">ae</span><span class="special">,</span> <span class="identifier">my_thread1</span><span class="special">,</span> <span class="identifier">my_thread2</span><span class="special">,</span> <span class="identifier">my_thread3</span><span class="special">));</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Algotithm "</span> <span class="special"><<</span> <span class="identifier">result</span><span class="special">.</span><span class="identifier">first</span><span class="special">+</span><span class="number">1</span> <span class="special"><<</span> <span class="string">" finished the first. result="</span> <span class="special"><<</span> <span class="identifier">result</span><span class="special">.</span><span class="identifier">second</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+    <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+          This results on the following output
+        </p>
+<pre class="programlisting">3 thread_id=0x9c03f8
+2 thread_id=0x9c0850
+1 thread_id=0x9d0c40
+Algotithm 2 finished the first. result=0
+
+</pre>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../users_guide.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/glosary.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/glosary.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Glossary</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../users_guide.html" title="Users'Guide">
+<link rel="prev" href="bibliography.html" title="References">
+<link rel="next" href="../reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bibliography.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.users_guide.glosary"></a><a class="link" href="glosary.html" title="Glossary"> Glossary</a>
+</h3></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">AE</span></dt>
+<dd><p>
+            Asynchronous executor
+          </p></dd>
+<dt><span class="term">ACT</span></dt>
+<dd><p>
+            Asynchronous completion token
+          </p></dd>
+</dl>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bibliography.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/glossary.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/glossary.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Glossary</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../users_guide.html" title=" Users'Guide">
+<link rel="prev" href="bibliography.html" title=" References">
+<link rel="next" href="../reference.html" title=" Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bibliography.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.users_guide.glossary"></a> Glossary
+</h3></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">AE</span></dt>
+<dd><p>
+            Asynchronous executor
+          </p></dd>
+<dt><span class="term">ACT</span></dt>
+<dd><p>
+            Asynchronous completion token
+          </p></dd>
+</dl>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bibliography.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/tutorial.html
==============================================================================
--- (empty file)
+++ sandbox/async/libs/async/doc/html/toward_boost_async/users_guide/tutorial.html	2009-10-13 02:51:21 EDT (Tue, 13 Oct 2009)
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Tutorial</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="../../index.html" title="Toward Boost Async">
+<link rel="up" href="../users_guide.html" title=" Users'Guide">
+<link rel="prev" href="getting_started.html" title=" Getting
+      Started">
+<link rel="next" href="bibliography.html" title=" References">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="getting_started.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bibliography.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_async.users_guide.tutorial"></a> Tutorial
+</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="tutorial.html#toward_boost_async.users_guide.tutorial.ae_act_framework">AE/ACT
+        framework</a></span></dt></dl></div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_async.users_guide.tutorial.ae_act_framework"></a><a href="tutorial.html#toward_boost_async.users_guide.tutorial.ae_act_framework" title="AE/ACT
+        framework">AE/ACT
+        framework</a>
+</h4></div></div></div></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009 Vicente J. Botet Escriba<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="getting_started.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bibliography.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>