$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r68960 - in sandbox/interthreads/libs/interthreads/doc: . html html/toward_boost_interthreads html/toward_boost_interthreads/appendices html/toward_boost_interthreads/examples html/toward_boost_interthreads/overview html/toward_boost_interthreads/reference html/toward_boost_interthreads/users_guide
From: vicente.botet_at_[hidden]
Date: 2011-02-16 14:38:24
Author: viboes
Date: 2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
New Revision: 68960
URL: http://svn.boost.org/trac/boost/changeset/68960
Log:
Interthreads: update doc
Text files modified: 
   sandbox/interthreads/libs/interthreads/doc/Jamfile.v2                                                                   |    17                                         
   sandbox/interthreads/libs/interthreads/doc/html/index.html                                                              |   102                                         
   sandbox/interthreads/libs/interthreads/doc/html/standalone_HTML.manifest                                                |    23                                         
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices.html                               |  1931 ++++++++++++++++++++++++++              
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/acknowledgements.html              |    21                                         
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/changes.html                       |   109                                         
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/implementation.html                |   181 +-                                      
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/rationale.html                     |  1442 +++++++++----------                     
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/tests.html                         |    23                                         
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/tickets.html                       |   277 +-                                      
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/todo.html                          |   185 +-                                      
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/examples.html                                 |   324 ++++                                    
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/examples/thread_safe_deferred_traces.html     |    64                                         
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/overview.html                                 |   476 ++++-                                   
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/overview/motivation.html                      |    75                                         
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference.html                                |  2857 +++++++++++++++++++++++++++++++++++++++ 
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/concepts.html                       |    20                                         
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/keep_alive_file_hpp.html            |   272 +--                                     
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/set_once_hpp.html                   |    53                                         
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_decoration_hpp.html          |   165 +-                                      
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_decorator_hpp.html           |   474 +++---                                  
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_group_once_hpp.html          |   482 +++---                                  
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_specific_shared_ptr_hpp.html |   634 ++++----                                
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_tuple_hpp.html               |   541 +++----                                 
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_tuple_once_hpp.html          |   514 +++---                                  
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide.html                              |  1753 ++++++++++++++++++++++++                
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/bibliography.html                 |    26                                         
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/getting_started.html              |   180 +-                                      
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/glosary.html                      |    62                                         
   sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/tutorial.html                     |   372 ++---                                   
   sandbox/interthreads/libs/interthreads/doc/interthreads.qbk                                                             |     9                                         
   sandbox/interthreads/libs/interthreads/doc/overview.qbk                                                                 |    72                                         
   sandbox/interthreads/libs/interthreads/doc/rationale.qbk                                                                |    16                                         
   sandbox/interthreads/libs/interthreads/doc/users_guide.qbk                                                              |     5                                         
   34 files changed, 10044 insertions(+), 3713 deletions(-)
Modified: sandbox/interthreads/libs/interthreads/doc/Jamfile.v2
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/Jamfile.v2	(original)
+++ sandbox/interthreads/libs/interthreads/doc/Jamfile.v2	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -17,7 +17,7 @@
         # Use graphics not text for navigation:
         <xsl:param>navig.graphics=1
         # How far down we chunk nested sections, basically all of them:
-        <xsl:param>chunk.section.depth=2
+        <xsl:param>chunk.section.depth=1
         # Don't put the first section on the same page as the TOC:
         <xsl:param>chunk.first.sections=1
         # How far down sections get TOC's
@@ -31,15 +31,15 @@
         # Path for libraries index:
         <xsl:param>boost.libraries=../../../../libs/libraries.htm
         # Use the main Boost stylesheet:
-        <xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
+        <xsl:param>html.stylesheet=../../../../doc/src/boostbook.css
 
         # PDF Options:
         # TOC Generation: this is needed for FOP-0.9 and later:
-        #<xsl:param>fop1.extensions=1
+        <format>pdf:<xsl:param>fop1.extensions=0
         # Or enable this if you're using XEP:
-        <xsl:param>xep.extensions=1
+        <format>pdf:<xsl:param>xep.extensions=1
         # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
-        <xsl:param>fop.extensions=0
+        <format>pdf:<xsl:param>fop.extensions=0
         # No indent on body text:
         <xsl:param>body.start.indent=0pt
         # Margin size:
@@ -52,6 +52,9 @@
         # default pnd graphics are awful in PDF form,
         # better use SVG's instead:
         <format>pdf:<xsl:param>admon.graphics.extension=".svg"
-        <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
-    ;
+        <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)
+        <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/interthreads/doc/html   
+	;
+
+install pdf-install : standalone : <location>. <install-type>PDF ;
 
Modified: sandbox/interthreads/libs/interthreads/doc/html/index.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/index.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/index.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,12 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Toward Boost.InterThreads</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.InterThreads">
-<link rel="next" href="toward_boost_interthreads/overview.html" title=" Overview">
+<title>Toward Boost.InterThreads 0.1.3</title>
+<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="index.html" title="Toward Boost.InterThreads 0.1.3">
+<link rel="next" href="toward_boost_interthreads/overview.html" title="Overview">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -19,17 +18,17 @@
 </tr></table>
 <hr>
 <div class="spirit-nav"><a accesskey="n" href="toward_boost_interthreads/overview.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
-<div class="article" lang="en">
+<div class="article">
 <div class="titlepage">
 <div>
 <div><h2 class="title">
-<a name="toward_boost_interthreads"></a>Toward Boost.InterThreads</h2></div>
+<a name="toward_boost_interthreads"></a>Toward Boost.InterThreads 0.1.3</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><p class="copyright">Copyright © 2008 -2009,2011 Vicente J. Botet Escriba</p></div>
 <div><div class="legalnotice">
-<a name="id4946174"></a><p>
+<a name="id3012888"></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>
@@ -40,56 +39,56 @@
 <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>
+<dt><span class="section">Overview</span></dt>
 <dd><dl>
-<dt><span class="section"><a href="toward_boost_interthreads/users_guide/getting_started.html">
-      Getting Started</a></span></dt>
-<dt><span class="section"> Tutorial</span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/users_guide/bibliography.html">
-      References</a></span></dt>
-<dt><span class="section"> Glossary</span></dt>
+<dt><span class="section">Motivation</span></dt>
+<dt><span class="section">Description</span></dt>
 </dl></dd>
-<dt><span class="section"> Reference</span></dt>
+<dt><span class="section">Users'Guide</span></dt>
 <dd><dl>
-<dt><span class="section">Concepts</span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/reference/thread_decoration_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decoration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/reference/thread_decorator_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/reference/thread_specific_shared_ptr_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_specific_shared_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/reference/keep_alive_file_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_keep_alive</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/reference/set_once_hpp.html"> Header
+<dt><span class="section"><a href="toward_boost_interthreads/users_guide.html#toward_boost_interthreads.users_guide.getting_started">Getting
+      Started</a></span></dt>
+<dt><span class="section">Tutorial</span></dt>
+<dt><span class="section">Examples</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_interthreads/reference.html#toward_boost_interthreads.reference.thread_decoration_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decoration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="toward_boost_interthreads/reference.html#toward_boost_interthreads.reference.thread_decorator_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="toward_boost_interthreads/reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_specific_shared_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="toward_boost_interthreads/reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_keep_alive</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="toward_boost_interthreads/reference.html#toward_boost_interthreads.reference.set_once_hpp">Header
       <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">set_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/reference/thread_tuple_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/reference/thread_tuple_once_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/reference/thread_group_once_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_group_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="toward_boost_interthreads/reference.html#toward_boost_interthreads.reference.thread_tuple_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="toward_boost_interthreads/reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
+<dt><span class="section"><a href="toward_boost_interthreads/reference.html#toward_boost_interthreads.reference.thread_group_once_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_group_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
 </dl></dd>
-<dt><span class="section">Examples</span></dt>
-<dd><dl><dt><span class="section"><a href="toward_boost_interthreads/examples/thread_safe_deferred_traces.html">Thread
-      safe deferred traces</a></span></dt></dl></dd>
 <dt><span class="section">Appendices</span></dt>
 <dd><dl>
-<dt><span class="section"><a href="toward_boost_interthreads/appendices/changes.html"> Appendix
+<dt><span class="section"><a href="toward_boost_interthreads/appendices.html#toward_boost_interthreads.appendices.changes">Appendix
       A: History</a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/appendices/rationale.html"> Appendix
+<dt><span class="section"><a href="toward_boost_interthreads/appendices.html#toward_boost_interthreads.appendices.rationale">Appendix
       B: Rationale</a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/appendices/implementation.html">
-      Appendix C: Implementation Notes</a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/appendices/acknowledgements.html">
-      Appendix D: Acknowledgments</a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/appendices/tests.html"> Appendix
+<dt><span class="section"><a href="toward_boost_interthreads/appendices.html#toward_boost_interthreads.appendices.implementation">Appendix
+      C: Implementation Notes</a></span></dt>
+<dt><span class="section"><a href="toward_boost_interthreads/appendices.html#toward_boost_interthreads.appendices.acknowledgements">Appendix
+      D: Acknowledgments</a></span></dt>
+<dt><span class="section"><a href="toward_boost_interthreads/appendices.html#toward_boost_interthreads.appendices.tests">Appendix
       E: Tests</a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/appendices/tickets.html"> Appendix
+<dt><span class="section"><a href="toward_boost_interthreads/appendices.html#toward_boost_interthreads.appendices.tickets">Appendix
       F: Tickets</a></span></dt>
-<dt><span class="section"><a href="toward_boost_interthreads/appendices/todo.html"> Appendix
-      G: Future plans</a></span></dt>
+<dt><span class="section"><a href="toward_boost_interthreads/appendices.html#toward_boost_interthreads.appendices.todo">Appendix G:
+      Future plans</a></span></dt>
 </dl></dd>
 </dl>
 </div>
@@ -102,12 +101,9 @@
       Toward Boost.InterThreads 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: January 16, 2011 at 09:25:40 GMT</small></p></td>
+<td align="left"><p><small>Last revised: February 16, 2011 at 00:18:47 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
Modified: sandbox/interthreads/libs/interthreads/doc/html/standalone_HTML.manifest
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/standalone_HTML.manifest	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/standalone_HTML.manifest	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,28 +1,5 @@
 index.html
 toward_boost_interthreads/overview.html
-toward_boost_interthreads/overview/motivation.html
 toward_boost_interthreads/users_guide.html
-toward_boost_interthreads/users_guide/getting_started.html
-toward_boost_interthreads/users_guide/tutorial.html
-toward_boost_interthreads/users_guide/bibliography.html
-toward_boost_interthreads/users_guide/glosary.html
 toward_boost_interthreads/reference.html
-toward_boost_interthreads/reference/concepts.html
-toward_boost_interthreads/reference/thread_decoration_hpp.html
-toward_boost_interthreads/reference/thread_decorator_hpp.html
-toward_boost_interthreads/reference/thread_specific_shared_ptr_hpp.html
-toward_boost_interthreads/reference/keep_alive_file_hpp.html
-toward_boost_interthreads/reference/set_once_hpp.html
-toward_boost_interthreads/reference/thread_tuple_hpp.html
-toward_boost_interthreads/reference/thread_tuple_once_hpp.html
-toward_boost_interthreads/reference/thread_group_once_hpp.html
-toward_boost_interthreads/examples.html
-toward_boost_interthreads/examples/thread_safe_deferred_traces.html
 toward_boost_interthreads/appendices.html
-toward_boost_interthreads/appendices/changes.html
-toward_boost_interthreads/appendices/rationale.html
-toward_boost_interthreads/appendices/implementation.html
-toward_boost_interthreads/appendices/acknowledgements.html
-toward_boost_interthreads/appendices/tests.html
-toward_boost_interthreads/appendices/tickets.html
-toward_boost_interthreads/appendices/todo.html
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,16 +1,12 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <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.InterThreads">
-<link rel="up" href="../index.html" title="Toward Boost.InterThreads">
-<link rel="prev" href="examples/thread_safe_deferred_traces.html" title="Thread
-      safe deferred traces">
-<link rel="next" href="appendices/changes.html" title=" Appendix
-      A: History">
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Toward Boost.InterThreads 0.1.3">
+<link rel="up" href="../index.html" title="Toward Boost.InterThreads 0.1.3">
+<link rel="prev" href="reference.html" title="Reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -23,69 +19,1924 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="examples/thread_safe_deferred_traces.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="appendices/changes.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="toward_boost_interthreads.appendices"></a>Appendices
+<a name="toward_boost_interthreads.appendices"></a><a class="link" href="appendices.html" title="Appendices">Appendices</a>
 </h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="appendices/changes.html"> Appendix
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.changes">Appendix
       A: History</a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="appendices/changes.html#toward_boost_interthreads.appendices.changes.__version_0_1_3__mars_29__2009__extraction_of_the_asynchonous_executor_framework"><span class="bold"><strong>Version 0.1.3, Mars 29, 2009</strong></span> Extraction of the Asynchonous
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.changes.__version_0_1_3__mars_29__2009__extraction_of_the_asynchonous_executor_framework"><span class="bold"><strong>Version 0.1.3, Mars 29, 2009</strong></span> Extraction of the Asynchonous
         Executor framework</a></span></dt>
-<dt><span class="section">Version 0.1.2, February 8, 2009 Bug fixes</span></dt>
-<dt><span class="section"><a href="appendices/changes.html#toward_boost_interthreads.appendices.changes.__version_0_1_1__january_14__2009__bug_fixes_and_test_on_more_toolsets"><span class="bold"><strong>Version 0.1.1, January 14, 2009</strong></span> Bug fixes and test
+<dt><span class="section">Version 0.1.2, February 8, 2009 Bug fixes</span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.changes.__version_0_1_1__january_14__2009__bug_fixes_and_test_on_more_toolsets"><span class="bold"><strong>Version 0.1.1, January 14, 2009</strong></span> Bug fixes and test
         on more toolsets</a></span></dt>
-<dt><span class="section"><a href="appendices/changes.html#toward_boost_interthreads.appendices.changes.__version_0_1_0__november_30__2008____announcement_of_interthreads_"><span class="bold"><strong>Version 0.1.0, November 30, 2008</strong></span> <span class="emphasis"><em>Announcement
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.changes.__version_0_1_0__november_30__2008____announcement_of_interthreads_"><span class="bold"><strong>Version 0.1.0, November 30, 2008</strong></span> <span class="emphasis"><em>Announcement
         of Interthreads</em></span></a></span></dt>
-<dt><span class="section">Bugs</span></dt>
+<dt><span class="section">Bugs</span></dt>
 </dl></dd>
-<dt><span class="section"><a href="appendices/rationale.html"> Appendix
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.rationale">Appendix
       B: Rationale</a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="appendices/rationale.html#toward_boost_interthreads.appendices.rationale.thread_decorator">Thread
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.rationale.decorator">Thread
         Decorator</a></span></dt>
-<dt><span class="section"><a href="appendices/rationale.html#toward_boost_interthreads.appendices.rationale.thread_specific_storage">Thread
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.rationale.tss">Thread
         Specific Storage</a></span></dt>
-<dt><span class="section"><a href="appendices/rationale.html#toward_boost_interthreads.appendices.rationale.keep_alive">Keep
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.rationale.ka">Keep
         Alive</a></span></dt>
-<dt><span class="section"><a href="appendices/rationale.html#toward_boost_interthreads.appendices.rationale.thread_tuple">Thread
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.rationale.tuple">Thread
         Tuple</a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="appendices/implementation.html">
-      Appendix C: Implementation Notes</a></span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.implementation">Appendix
+      C: Implementation Notes</a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="appendices/implementation.html#toward_boost_interthreads.appendices.implementation.thread_decorator">Thread
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.implementation.thread_decorator">Thread
         Decorator</a></span></dt>
-<dt><span class="section"><a href="appendices/implementation.html#toward_boost_interthreads.appendices.implementation.thread_specific_storage">Thread
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.implementation.thread_specific_storage">Thread
         Specific Storage</a></span></dt>
-<dt><span class="section"><a href="appendices/implementation.html#toward_boost_interthreads.appendices.implementation.keep_alive">Keep
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.implementation.keep_alive">Keep
         Alive</a></span></dt>
-<dt><span class="section"><a href="appendices/implementation.html#toward_boost_interthreads.appendices.implementation.thread_tuple">Thread
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.implementation.thread_tuple">Thread
         Tuple</a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="appendices/acknowledgements.html">
-      Appendix D: Acknowledgments</a></span></dt>
-<dt><span class="section"><a href="appendices/tests.html"> Appendix
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.acknowledgements">Appendix
+      D: Acknowledgments</a></span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.tests">Appendix
       E: Tests</a></span></dt>
-<dd><dl><dt><span class="section">thread_specific_shared_pointer</span></dt></dl></dd>
-<dt><span class="section"><a href="appendices/tickets.html"> Appendix
+<dd><dl><dt><span class="section">thread_specific_shared_pointer</span></dt></dl></dd>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.tickets">Appendix
       F: Tickets</a></span></dt>
-<dt><span class="section"><a href="appendices/todo.html"> Appendix
-      G: Future plans</a></span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.todo">Appendix G:
+      Future plans</a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="appendices/todo.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review">Tasks
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.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_interthreads.appendices.todo.for_later_releases">For
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.todo.for_later_releases">For
         later releases</a></span></dt>
 </dl></dd>
 </dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.appendices.changes"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.changes" title="Appendix A: History">Appendix
+      A: History</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.changes.__version_0_1_3__mars_29__2009__extraction_of_the_asynchonous_executor_framework"><span class="bold"><strong>Version 0.1.3, Mars 29, 2009</strong></span> Extraction of the Asynchonous
+        Executor framework</a></span></dt>
+<dt><span class="section">Version 0.1.2, February 8, 2009 Bug fixes</span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.changes.__version_0_1_1__january_14__2009__bug_fixes_and_test_on_more_toolsets"><span class="bold"><strong>Version 0.1.1, January 14, 2009</strong></span> Bug fixes and test
+        on more toolsets</a></span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.changes.__version_0_1_0__november_30__2008____announcement_of_interthreads_"><span class="bold"><strong>Version 0.1.0, November 30, 2008</strong></span> <span class="emphasis"><em>Announcement
+        of Interthreads</em></span></a></span></dt>
+<dt><span class="section">Bugs</span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.changes.__version_0_1_3__mars_29__2009__extraction_of_the_asynchonous_executor_framework"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.changes.__version_0_1_3__mars_29__2009__extraction_of_the_asynchonous_executor_framework" title="Version 0.1.3, Mars 29, 2009 Extraction of the Asynchonous Executor framework"><span class="bold"><strong>Version 0.1.3, Mars 29, 2009</strong></span> Extraction of the Asynchonous
+        Executor framework</a>
+</h4></div></div></div>
+<p>
+          <span class="bold"><strong>New Features:</strong></span>
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+              Extraction of the Asynchonous Executor framework
+            </li></ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.changes.__version_0_1_2__february_8__2009__bug_fixes"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.changes.__version_0_1_2__february_8__2009__bug_fixes" title="Version 0.1.2, February 8, 2009 Bug fixes"><span class="bold"><strong>Version 0.1.2, February 8, 2009</strong></span> Bug fixes</a>
+</h4></div></div></div>
+<p>
+          <span class="bold"><strong>Fixed Bugs:</strong></span>
+        </p>
+<p>
+          <span class="bold"><strong>v0.3.1#1: keep alive mechanism crash when setting
+          <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code>
+          before enabling the mechanism.</strong></span> This was due to the fact that
+          there were no default data for the backup.
+        </p>
+<p>
+          <span class="bold"><strong>v0.3.1#2: keep alive mechanism do not detect dead
+          threads.</strong></span> We need to reset the counters only when the period
+          is 0.
+        </p>
+<p>
+          <span class="bold"><strong>v0.3.1#3: The <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code> setting is not recovered by embeeding
+          kep_alive enablers/disablers.</strong></span> The problem is that the <code class="computeroutput"><span class="identifier">on_dead</span><span class="special">()</span></code>
+          the function and the thread pointer were stored on the backup. It is enough
+          to store them on the <code class="computeroutput"><span class="identifier">thread_keep_alive_ctx</span></code>
+          and make the functions thread_safe.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.changes.__version_0_1_1__january_14__2009__bug_fixes_and_test_on_more_toolsets"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.changes.__version_0_1_1__january_14__2009__bug_fixes_and_test_on_more_toolsets" title="Version 0.1.1, January 14, 2009 Bug fixes and test on more toolsets"><span class="bold"><strong>Version 0.1.1, January 14, 2009</strong></span> Bug fixes and test
+        on more toolsets</a>
+</h4></div></div></div>
+<p>
+          <span class="bold"><strong>Toolsets:</strong></span>
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+              Tested on Linux gcc 3.4.6.
+            </li>
+<li class="listitem">
+              Tested on Linux gcc 4.1.2.
+            </li>
+<li class="listitem">
+              Modification helping Windows (not tested)
+            </li>
+</ul></div>
+<p>
+          <span class="bold"><strong>Fixed Bugs:</strong></span>
+        </p>
+<p>
+          <span class="bold"><strong>v0.1#1: basic_keep_alive example do not link.</strong></span>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.changes.__version_0_1_0__november_30__2008____announcement_of_interthreads_"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.changes.__version_0_1_0__november_30__2008____announcement_of_interthreads_" title="Version 0.1.0, November 30, 2008 Announcement of Interthreads"><span class="bold"><strong>Version 0.1.0, November 30, 2008</strong></span> <span class="emphasis"><em>Announcement
+        of Interthreads</em></span></a>
+</h4></div></div></div>
+<p>
+          <span class="bold"><strong>Features:</strong></span>
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+              <code class="computeroutput"><span class="identifier">thread_decorator</span></code> setup/cleanup
+              thread decorator,
+            </li>
+<li class="listitem">
+              thread specific shared pointer,
+            </li>
+<li class="listitem">
+              thread keep alive mechanism,
+            </li>
+<li class="listitem">
+              thread tuples, set_once synchonizer, thread_tuple_once and thread_group_once.
+            </li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.changes.__bugs_"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.changes.__bugs_" title="Bugs"><span class="bold"><strong>Bugs</strong></span></a>
+</h4></div></div></div>
+<a name="toward_boost_interthreads.appendices.changes.__bugs_._emphasis_role__bold__open_bugs___emphasis_"></a><h6>
+<a name="id3061844"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.changes.__bugs_._emphasis_role__bold__open_bugs___emphasis_"><span class="bold"><strong>Open Bugs:</strong></span></a>
+        </h6>
+<a name="toward_boost_interthreads.appendices.changes.__bugs_._emphasis_role__bold__fixed_bugs___emphasis_"></a><h6>
+<a name="id3061872"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.changes.__bugs_._emphasis_role__bold__fixed_bugs___emphasis_"><span class="bold"><strong>Fixed Bugs:</strong></span></a>
+        </h6>
+<p>
+          <span class="bold"><strong>v0.1.1#1: keep alive mechanism crash when setting
+          set_on_dead_thread before enabling the mechanism.</strong></span> This was due
+          to the fact that there were no default data for the backup.
+        </p>
+<p>
+          <span class="bold"><strong>v0.1.1#2: keep alive mechanism do not detect dead
+          threads.</strong></span> We need to reste the counters only when the period
+          is 0.
+        </p>
+<p>
+          <span class="bold"><strong>v0.1.1#3: The set_on_dead_thread setting is not recovered
+          by embeeding enablers/disablers.</strong></span> The problem is that the on_dead
+          and th thread pointer were stored on the backup. It is enough to store
+          them on the
+        </p>
+<p>
+          <span class="bold"><strong>v0.1#1: basic_keep_alive example do not link.</strong></span>
+        </p>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.appendices.rationale"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.rationale" title="Appendix B: Rationale">Appendix
+      B: Rationale</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.rationale.decorator">Thread
+        Decorator</a></span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.rationale.tss">Thread
+        Specific Storage</a></span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.rationale.ka">Keep
+        Alive</a></span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.rationale.tuple">Thread
+        Tuple</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.rationale.decorator"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.rationale.decorator" title="Thread Decorator">Thread
+        Decorator</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Function wrapper versus thread refinement</span></dt>
+<dd><p>
+                The threadalert on which this library was initialy based redefined
+                the boost:thread class which called implicitly the wrapper. As the
+                single varying features between both threads was this wrapping of
+                the thread function it has been isolated in the interthreads library.
+              </p></dd>
+<dt><span class="term">Static decoration variables</span></dt>
+<dd><p>
+                Thread decorations construction is not thread safe and must be done
+                before other threads have been created and the <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code> function is called.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.rationale.tss"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.rationale.tss" title="Thread Specific Storage">Thread
+        Specific Storage</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Non copiable/Non movable</span></dt>
+<dd><p>
+                Specific pointers are singletons.
+              </p></dd>
+<dt><span class="term">External locking</span></dt>
+<dd><p>
+                In order to ensure thread safety while providing as much functionality
+                as possible the class allows to get the map of thread specific contexts
+                as soon as the application provides a <code class="computeroutput"><span class="identifier">unique_lock</span></code>.
+              </p></dd>
+<dt><span class="term">Mimic thread_specific_ptr</span></dt>
+<dd>
+<p>
+                From the point of view of the current thread thread_specific_shared_ptr
+                behaves as a thread_specific_ptr. From it we takes:
+              </p>
+<p>
+                
+</p>
+<pre class="programlisting"><span class="identifier">thread_specific_shared_ptr</span><span class="special">();</span>
+<span class="keyword">explicit</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special">(</span><span class="keyword">void</span> <span class="special">(*</span><span class="identifier">cleanup_</span><span class="special">)(</span><span class="identifier">shared_ptr_type</span><span class="special">));</span>
+<span class="identifier">T</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</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">const</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">const</span><span class="special">;</span>
+<span class="keyword">void</span> <span class="identifier">reset</span><span class="special">();</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">);</span>
+</pre>
+<p>
+              </p>
+</dd>
+<dt><span class="term">Mimic shared_ptr</span></dt>
+<dd>
+<p>
+                From the point of view of the other threads thread_specific_shared_ptr
+                behaves as a shared_ptr lockup. From the point of view of the current
+                thread the stored pointer is located in a shared_pointer, so we can
+                use the shared_ptr deleter feature From shared_ptr takes:
+              </p>
+<p>
+                
+</p>
+<pre class="programlisting"><span class="identifier">T</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</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">const</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">const</span><span class="special">;</span>
+<span class="keyword">void</span> <span class="identifier">reset</span><span class="special">();</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">d</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</span><span class="special">);</span>
+</pre>
+<p>
+              </p>
+</dd>
+<dt><span class="term">Why doesn't thread_specific_shared_ptr provide a release() function?</span></dt>
+<dd><p>
+                As it store a shared_ptr, it cannot give away ownership unless it's
+                unique() because the other copy will still destroy the object.
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_interthreads.appendices.rationale.tss._hcmp_tss_comparaing_tsss_and_tss"></a><h6>
+<a name="id3062782"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.rationale.tss._hcmp_tss_comparaing_tsss_and_tss">:hcmp_tss
+          Comparaing TSSS and TSS</a>
+        </h6>
+<div class="table">
+<a name="toward_boost_interthreads.appendices.rationale.tss.tcmp_tss"></a><p class="title"><b>Table 1. Comparaing TSSS and TSS</b></p>
+<div class="table-contents"><table class="table" summary="Comparaing TSSS and TSS">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Feature
+                  </p>
+                </th>
+<th>
+                  <p>
+                    thread_specific_shared_ptr
+                  </p>
+                </th>
+<th>
+                  <p>
+                    thread_specific_ptr
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Compatible
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    ownership
+                  </p>
+                </td>
+<td>
+                  <p>
+                    shared
+                  </p>
+                </td>
+<td>
+                  <p>
+                    exclusive
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    default constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cleanup constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>: can not delete the pointer
+                  </p>
+                </td>
+<td>
+                  <p>
+                    yes:must delete the pointer
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">T</span><span class="special">*)</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span><span class="special">*)</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span><span class="special">*,</span><span class="identifier">D</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span><span class="special">*,</span><span class="identifier">D</span><span class="special">,</span><span class="identifier">A</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">release</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.rationale.ka"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.rationale.ka" title="Keep Alive">Keep
+        Alive</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Can a thread that has just do a check point be considered as dead
+            less than one second after?</span></dt>
+<dd><p>
+                Whell this depends on the enabling parameters. If the checking parameter
+                is greater than one it could be possible that the thread do a check_point
+                just before the keep alive manager do the check, seen that there
+                are not enough check_points and declaring the thread dead. If you
+                want to avoid this situation let the checkin to 1.
+              </p></dd>
+<dt><span class="term">Nesting enablers and disablers</span></dt>
+<dd><p>
+                Enablers/disablers use RAII, so they can be nested and the context
+                be restored on the destructor.
+              </p></dd>
+<dt><span class="term">Configurable on dead action</span></dt>
+<dd><p>
+                The default action is to abort the process because I don't see any
+                generic and cleaner way to manage this event. The library provides
+                this hook for user wanting to try something specific.
+              </p></dd>
+<dt><span class="term">Who control the controler?</span></dt>
+<dd><p>
+                There is no way to control this thread other than adding an external
+                process.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.rationale.tuple"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.rationale.tuple" title="Thread Tuple">Thread
+        Tuple</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Why must be not copiable?</span></dt>
+<dd><p>
+                Thread tuples can not be copiable since boost::thread is not copiable.
+              </p></dd>
+<dt><span class="term">Why should be movable?</span></dt>
+<dd><p>
+                If we want functions to return Thread tuples it is necessary to make
+                them movable.
+              </p></dd>
+<dt><span class="term">Mimic boost::thread_group</span></dt>
+<dd>
+<p>
+                thread_tuple has in common some function found in thread_group. From
+                it we take
+              </p>
+<p>
+                
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
+<span class="keyword">void</span> <span class="identifier">interrupt_all</span><span class="special">();</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">size</span><span class="special">();</span>
+</pre>
+<p>
+              </p>
+</dd>
+<dt><span class="term">Mimic boost::thread</span></dt>
+<dd>
+<p>
+                We can consider a thread tuple as a compound thread, and so we can
+                mimic the thread intyerface. From it we takes
+              </p>
+<p>
+                
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join</span><span class="special">();</span>
+<span class="keyword">void</span> <span class="identifier">interrupt</span><span class="special">();</span>
+<span class="keyword">void</span> <span class="identifier">detach</span><span class="special">/</span><span class="identifier">detach_all</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">void</span> <span class="identifier">timed_join</span><span class="special">/</span><span class="identifier">timed_join_all</span><span class="special">();</span>
+<span class="keyword">bool</span> <span class="identifier">joinable</span><span class="special">/</span><span class="identifier">all_joinable</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+              </p>
+</dd>
+<dt><span class="term">Why the user can not modify directly the embeeded threads?</span></dt>
+<dd>
+<p>
+                The library provides a safe function to get a constant thread reference
+              </p>
+<p>
+                
+</p>
+<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
+<p>
+              </p>
+<p>
+                The problem if we provide the non constant variant is that the user
+                can detach them.
+              </p>
+</dd>
+<dt><span class="term">Joining the first finishing thread of a thread tuple</span></dt>
+<dd><p>
+                This functionallity has a price. We need to synchronize all the threads
+                transparently, so we need to wrap the user thread functions.
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_interthreads.appendices.rationale.tuple._hcmp_thread_comparaing_thread__thread_group_and_thread_tuple"></a><h6>
+<a name="id3064259"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.rationale.tuple._hcmp_thread_comparaing_thread__thread_group_and_thread_tuple">:hcmp_thread
+          Comparaing thread, thread_group and thread_tuple</a>
+        </h6>
+<div class="table">
+<a name="toward_boost_interthreads.appendices.rationale.tuple.tcmp_thread"></a><p class="title"><b>Table 2. Comparaing thread, thread_group and thread_tuple</b></p>
+<div class="table-contents"><table class="table" summary="Comparaing thread, thread_group and thread_tuple">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Feature
+                  </p>
+                </th>
+<th>
+                  <p>
+                    thread
+                  </p>
+                </th>
+<th>
+                  <p>
+                    thread_group
+                  </p>
+                </th>
+<th>
+                  <p>
+                    thread_tuple
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Compatible
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    default constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    copiable
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    movable
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">joinable</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no*
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no*
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no*
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">interruption_requested</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no*
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">timed_join_all</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no* *
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">join_first_then_interrupt</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no* * *
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no* * *
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no*
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">*</span></dt>
+<dd><p>
+                thread_group could add these synonym functions
+              </p></dd>
+<dt><span class="term">* *</span></dt>
+<dd><p>
+                thread could add the size function returning 1
+              </p></dd>
+<dt><span class="term">* * *</span></dt>
+<dd><p>
+                thread & thread_group could add these functions
+              </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.appendices.implementation"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.implementation" title="Appendix C: Implementation Notes">Appendix
+      C: Implementation Notes</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.implementation.thread_decorator">Thread
+        Decorator</a></span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.implementation.thread_specific_storage">Thread
+        Specific Storage</a></span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.implementation.keep_alive">Keep
+        Alive</a></span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.implementation.thread_tuple">Thread
+        Tuple</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.implementation.thread_decorator"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.implementation.thread_decorator" title="Thread Decorator">Thread
+        Decorator</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Thread safe</span></dt>
+<dd><p>
+                The library is thread safe as far as the thread decorations are declared
+                staticaly, because these variables will be initialized sequentially.
+              </p></dd>
+<dt><span class="term">Chained thread decorations</span></dt>
+<dd><p>
+                All the thread decorations are chained between them.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.implementation.thread_specific_storage"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.implementation.thread_specific_storage" title="Thread Specific Storage">Thread
+        Specific Storage</a>
+</h4></div></div></div>
+<p>
+          The Thread-Specific Storage pattern can be implemented in various ways
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">External versus internal thread storage</span></dt>
+<dd><p>
+                The thread specific data collections can be stored either externally
+                to all threads or internally to each thread. The thread_specific_shared_ptr
+                use both ensuring efficiency when the context is requested by the
+                current thread and allowing threads to access thread specific pointer
+                of other threads
+              </p></dd>
+<dt><span class="term">Fixed- vs. variable-sized thread specific key mapping</span></dt>
+<dd><p>
+                This library is based on the the Boost.Thread thread_specific_ptr
+                implementation which use a variable-size map indexed by the address
+                of the object. Future releases will provide fixed and mixed keys.
+              </p></dd>
+<dt><span class="term">Fixed- vs. variable-sized mapping of thread IDs to thread specific
+            pointers</span></dt>
+<dd><p>
+                It may be impractical to have a fixed-size array with an entry for
+                every possible thread ID value. Instead, it is more space efficient
+                to have threads use a dynamic data structure to map thread IDs to
+                thread specific pointers.
+              </p></dd>
+<dt><span class="term">One mapping of thread IDs to thread specific pointers or to thread
+            specific key mapping</span></dt>
+<dd><p>
+                This library maps thread IDs to thread specific pointers to avoid
+                contention on a single map.
+              </p></dd>
+<dt><span class="term">Default versus explicit specific context setting</span></dt>
+<dd><p>
+                This library provides explicit setting. In future release will provide
+                explicit/eager and implicit/lazy specific context setting. Note that
+                implicit setting will need a factory or a default constructible type.
+              </p></dd>
+<dt><span class="term">Ordered or unordered map</span></dt>
+<dd><p>
+                While the thread::id type is ordered, there is no need to use it.
+                The current implementation use an ordered map. Future version will
+                allow the user to configure this.
+              </p></dd>
+<dt><span class="term">Intrusive or not maps</span></dt>
+<dd><p>
+                As the thread specific pointer is stored on only one map the implementation
+                could use an intrusive container. This will be provided in future
+                releases
+              </p></dd>
+<dt><span class="term">Shared versus exclusive locking</span></dt>
+<dd><p>
+                Locating the right TS pointer requires the use of mutex to prevent
+                race conditions. The library use a a shared_mutex because most of
+                the access to the map will be readings by other threads. The problem
+                is that the native conditions can not be used directly with shared
+                mutex. Some benchmarks will be needed before decidinf which implementation
+                is the best.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.implementation.keep_alive"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.implementation.keep_alive" title="Keep Alive">Keep
+        Alive</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Ensuring keep alive manager singleton is initialized and the thread
+            specific shared storage is set before use</span></dt>
+<dd><p>
+                The use of the thread decoration ensures that the decoration are
+                called before the user thread function is called. The keep_alive
+                decoration use the call_once to ensure that the keep_alive manager
+                is correctly initialized.
+              </p></dd>
+<dt><span class="term">backup/restore context</span></dt>
+<dd><p>
+                The real thread specific data is stored directly on the stack of
+                enablers/disablers avoiding heap memory. On enablers/disablers construction
+                they store a backup pointer to the nesting context. This allows a
+                quick restore. The keep alive pointer contains just a pointer to
+                this data.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.implementation.thread_tuple"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.implementation.thread_tuple" title="Thread Tuple">Thread
+        Tuple</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Joining the first finishing thread</span></dt>
+<dd><p>
+                In order to synchronize the end of all the threads the libarry use
+                a internal class which stores the index of the first thread notifying
+                that it is finished. As the user function has no idea of this index
+                we need to wrap the user thread functions.
+              </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.appendices.acknowledgements"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.acknowledgements" title="Appendix D: Acknowledgments">Appendix
+      D: Acknowledgments</a>
+</h3></div></div></div>
+<p>
+        Part of this library (thread_decorator and thread_specific_shared_ptr) are
+        based on the original implementation of threadalert written by Roland Schwarz (thread::init
+        and thread_member_ptr). Many Thanks to Roland that allowed me to adapt his
+        implementation.
+      </p>
+<p>
+        Thanks also must go to Jochen Heckl for the ideas given respect to the thread_tuple::wait_first
+        implementation.
+      </p>
+<p>
+        You can help me to make this library better! Any feedback is very welcome.
+      </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.appendices.tests"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.tests" title="Appendix E: Tests">Appendix
+      E: Tests</a>
+</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section">thread_specific_shared_pointer</span></dt></dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.tests.thread_specific_shared_pointer"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.tests.thread_specific_shared_pointer" title="thread_specific_shared_pointer">thread_specific_shared_pointer</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup></colgroup>
+<tbody></tbody>
+</table></div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.appendices.tickets"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.tickets" title="Appendix F: Tickets">Appendix
+      F: Tickets</a>
+</h3></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Kind
+                </p>
+              </th>
+<th>
+                <p>
+                  Identifier
+                </p>
+              </th>
+<th>
+                <p>
+                  Description
+                </p>
+              </th>
+<th>
+                <p>
+                  Resolution
+                </p>
+              </th>
+<th>
+                <p>
+                  State
+                </p>
+              </th>
+<th>
+                <p>
+                  Tests
+                </p>
+              </th>
+<th>
+                <p>
+                  Version
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  bug
+                </p>
+              </td>
+<td>
+                <p>
+                  v0.1#1
+                </p>
+              </td>
+<td>
+                <p>
+                  basic_keep_alive example do not link
+                </p>
+              </td>
+<td>
+                <p>
+                  Add to the link
+                </p>
+              </td>
+<td>
+                <p>
+                  Closed
+                </p>
+              </td>
+<td>
+                <p>
+                  See basic_keep_alive.cpp example
+                </p>
+              </td>
+<td>
+                <p>
+                  v0.2
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  bug
+                </p>
+              </td>
+<td>
+                <p>
+                  v0.1.1#1
+                </p>
+              </td>
+<td>
+                <p>
+                  keep alive mechanism crash when setting set_on_dead_thread before
+                  enabling the mechanism
+                </p>
+              </td>
+<td>
+                <p>
+                  This was due to the fact that there were no default data for the
+                  backup.
+                </p>
+              </td>
+<td>
+                <p>
+                  Closed
+                </p>
+              </td>
+<td>
+                <p>
+                  See basic_keep_alive.cpp example
+                </p>
+              </td>
+<td>
+                <p>
+                  v0.4
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  bug
+                </p>
+              </td>
+<td>
+                <p>
+                  v0.1.1#2
+                </p>
+              </td>
+<td>
+                <p>
+                  keep alive mechanism do not detect dead threads
+                </p>
+              </td>
+<td>
+                <p>
+                  We need to reset the counters only when the period is 0.
+                </p>
+              </td>
+<td>
+                <p>
+                  Closed
+                </p>
+              </td>
+<td>
+                <p>
+                  See basic_keep_alive.cpp example
+                </p>
+              </td>
+<td>
+                <p>
+                  v0.4
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  bug
+                </p>
+              </td>
+<td>
+                <p>
+                  v0.1.1#3
+                </p>
+              </td>
+<td>
+                <p>
+                  The set_on_dead_thread setting is not recovered by embeeding enablers/disablers
+                </p>
+              </td>
+<td>
+                <p>
+                  The problem is that the on_dead and th thread pointer were stored
+                  on the backup. It is enough to store them on the
+                </p>
+              </td>
+<td>
+                <p>
+                  Closed
+                </p>
+              </td>
+<td>
+                <p>
+                  See basic_keep_alive.cpp example
+                </p>
+              </td>
+<td>
+                <p>
+                  v0.4
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  bug
+                </p>
+              </td>
+<td>
+                <p>
+                  v0.2.0#1
+                </p>
+              </td>
+<td>
+                <p>
+                  xxx
+                </p>
+              </td>
+<td>
+                <p>
+                  xx
+                </p>
+              </td>
+<td>
+                <p>
+                  Open
+                </p>
+              </td>
+<td>
+                <p>
+                  xxx
+                </p>
+              </td>
+<td>
+                <p>
+                  v0.4.1
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.appendices.todo"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.todo" title="Appendix G: Future plans">Appendix G:
+      Future plans</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review">Tasks
+        to do before review</a></span></dt>
+<dt><span class="section"><a href="appendices.html#toward_boost_interthreads.appendices.todo.for_later_releases">For
+        later releases</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.todo.tasks_to_do_before_review"></a><a class="link" href="appendices.html#toward_boost_interthreads.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_interthreads.appendices.todo.tasks_to_do_before_review.complete_the_tests"></a><h6>
+<a name="id3066297"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.complete_the_tests">Complete
+          the tests</a>
+        </h6>
+<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 class="itemizedlist" type="disc">
+<li class="listitem">
+              change the test so they take less time using locks; conditions and
+              variables.
+            </li>
+<li class="listitem">
+              Add test with functions throwing
+            </li>
+<li class="listitem">
+              Formalize the tests for thread_decoratoor
+            </li>
+<li class="listitem">
+              Formalize the tests for thread_specific_shared_ptr
+            </li>
+<li class="listitem">
+              Add tests for keep alive mechanism
+            </li>
+</ul></div>
+<a name="toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.add_more_examples"></a><h6>
+<a name="id3066370"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.add_more_examples">Add
+          more examples</a>
+        </h6>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+              Complete the STM example.
+            </li>
+<li class="listitem">
+              Change the implementation of the file on the async_ostream.
+            </li>
+</ul></div>
+<a name="toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.change_the_rational_and_implementation_sections"></a><h6>
+<a name="id3066414"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.change_the_rational_and_implementation_sections">Change
+          the rational and implementation sections</a>
+        </h6>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases"></a><a class="link" href="appendices.html#toward_boost_interthreads.appendices.todo.for_later_releases" title="For later releases">For
+        later releases</a>
+</h4></div></div></div>
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.add_c__0x_move_semantics_on_compilers_supporting_it_and_use_the_boost_move_emulation_otherwise"></a><h6>
+<a name="id3066456"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.todo.for_later_releases.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>
+        </h6>
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.use_c__0x_variadic_templates_on_compilers_supporting_it_and_use_the_preprocesor_otherwise"></a><h6>
+<a name="id3066486"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.todo.for_later_releases.use_c__0x_variadic_templates_on_compilers_supporting_it_and_use_the_preprocesor_otherwise">Use
+          C++0x variadic templates on compilers supporting it and use the preprocesor
+          otherwise</a>
+        </h6>
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.use_c__0x_concepts_on_compilers_supporting_them_and_use_the_boost_conceptcheck_or_boost_concepttraits_otherwise"></a><h6>
+<a name="id3066516"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.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>
+        </h6>
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.add_a_daemon_controlling_all_the_keep_alive_controller_threads"></a><h6>
+<a name="id3066547"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.todo.for_later_releases.add_a_daemon_controlling_all_the_keep_alive_controller_threads">Add
+          a daemon controlling all the keep alive controller threads</a>
+        </h6>
+<p>
+          This daemon will send regular keep_alive messages and kill the process
+          when dead.
+        </p>
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.optimize_the_tsss_maps_using_intrusive_containers"></a><h6>
+<a name="id3066584"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.todo.for_later_releases.optimize_the_tsss_maps_using_intrusive_containers">Optimize
+          the TSSS maps using intrusive containers</a>
+        </h6>
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.generalize_both_specific_pointers_in_a_template_class_basic_thread_specific_ptr"></a><h6>
+<a name="id3066606"></a>
+          <a class="link" href="appendices.html#toward_boost_interthreads.appendices.todo.for_later_releases.generalize_both_specific_pointers_in_a_template_class_basic_thread_specific_ptr">Generalize
+          both specific pointers in a template class basic_thread_specific_ptr</a>
+        </h6>
+<p>
+          <span class="bold"><strong>Domain Features</strong></span>
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">ownership: exclusive/shared</span></dt>
+<dd><p>
+                Specifies if the pointer is exclusive to the thread or shared with
+                other threads.
+              </p></dd>
+<dt><span class="term">key range: fixed/variable/mixed </span></dt>
+<dd><p>
+                Specifies how the key range is defined. fixed has an integer range
+                0..n, variable takes as key the address of the specific_ptr and mixed
+                use a variant of fixed or variable key.
+              </p></dd>
+<dt><span class="term">key creation: eager/lazy</span></dt>
+<dd><p>
+                Specifies how the key is created, eager at construction time, lazy
+                when needed.
+              </p></dd>
+<dt><span class="term">context setting: eager/lazy</span></dt>
+<dd><p>
+                Specifies how the pointer is set, eager at thread initialization
+                time, lazy when needed.
+              </p></dd>
+</dl>
+</div>
+<p>
+          The current <code class="computeroutput"><span class="identifier">thread_specific_ptr</span></code>
+          is exclusive, has a variable key range and so the key is initialized at
+          construction time and explicit context setting by user on the current thread.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">basic_thread_specific_ptr</span><span class="special"><</span><span class="identifier">exclusive</span><span class="special">,</span> <span class="identifier">variable_key_range</span><span class="special"><>,</span> <span class="identifier">eager_context_setting</span><span class="special">></span> <span class="identifier">thread_specific_ptr</span><span class="special">;</span>
+</pre>
+<p>
+          The current <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span></code>
+          is shared, has a variable key range and so the key is initialized at construction
+          time and explicit context setting by user on the current thread.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">basic_thread_specific_ptr</span><span class="special"><</span><span class="identifier">exclusive</span><span class="special">,</span> <span class="identifier">variable_key_range</span><span class="special"><>,</span> <span class="identifier">eager_context_setting</span><span class="special">></span> <span class="identifier">thread_specific_ptr</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Design rationale</strong></span>
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_ptr</span></code> uses as key the address
+          of the variable. This has as consequence that the mapping from keys to
+          the thread specific context pointer is much less efficient that the direct
+          access provided by some implementations. In this concern this library would
+          try to improve the performance to this mapping providing direct access
+          keys. As the number of direct access keys must be know at compile time
+          this has a limit on the number of thread specific pointers. A mixed approach
+          would be also provided in which the key could be a fixed one or a variable
+          one. It is up to the user to give an hint of the key sort. When using fixed
+          or mixed keys, there is decision to take related to when the key is created,
+          i.e. eager before the threads starts or lazy when we need it.
+        </p>
+<p>
+          Non-portable: The interfaces of POSIX Pthreads, Solaris threads, and Win32
+          threads are very similar. However, the semantics of Win32 threads are subtly
+          different since they do not provide a reliable means of cleaning up objects
+          allocated in thread-specific storage when a thread exits. Moreover, there
+          is no API to delete a key in Solaris threads. This makes it hard to write
+          portable code among UNIX and Win32 platforms.
+        </p>
+<p>
+          So we need to implement it on top of the underlying OS. The idea is to
+          take a native thread specific pointer which will manage with the fixed,
+          variable and mixed keys. This exactly the approach of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_ptr</span></code>
+          but only for variable keys.
+        </p>
+<p>
+          Just to finish, we need to decide when the context is set, two possibilities:
+          the user sets explicitlly the context when it considers pertinent or the
+          context is created lazily the first time we try to get it. The first approach
+          has the liability that the user needs to ensure that the context is set
+          before get them, but when the context must be set before the function thread
+          starts this is a no issue. The second is safe but has as consequence that
+          every access include a check. In addition the type must be default constructible.
+        </p>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">,</span> <span class="identifier">lazy_setting</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
+</pre>
+<p>
+          The pointer will be initilaized when needed as if we had do
+        </p>
+<pre class="programlisting"><span class="keyword">if</span> <span class="special">(</span><span class="identifier">ptr</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="special">{</span>
+    <span class="identifier">ptr</span><span class="special">.</span><span class="identifier">reset</span><span class="special">(</span> <span class="keyword">new</span> <span class="identifier">myclass</span><span class="special">()</span> <span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          Between the features:
+        </p>
+<p>
+          Thread_specific key mapping optimization: Replace the Boost.Thread thread_specific_ptr
+          thread specific key mapping implementation by a mix of fixed/variable mapping
+          which will provide efficient access to the fixed keys and scalability with
+          the others keys.
+        </p>
+<p>
+          Configuration the fixed/variable/mixed key range, ordered/unordered map,
+          intrusive/extrusive map, shared/exclusive locking.
+        </p>
+</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>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009,2011 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>
@@ -93,7 +1944,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="examples/thread_safe_deferred_traces.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="appendices/changes.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
 </div>
 </body>
 </html>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/acknowledgements.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/acknowledgements.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/acknowledgements.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,17 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>
-      Appendix D: Acknowledgments</title>
+<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.InterThreads">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
 <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">
+<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>
@@ -26,11 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="implementation.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tests.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.appendices.acknowledgements"></a><a href="acknowledgements.html" title="
-      Appendix D: Acknowledgments">
-      Appendix D: Acknowledgments</a>
+<a name="toward_boost_interthreads.appendices.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Appendix D: Acknowledgments">Appendix
+      D: Acknowledgments</a>
 </h3></div></div></div>
 <p>
         Part of this library (thread_decorator and thread_specific_shared_ptr) are
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/changes.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/changes.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/changes.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,16 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title> Appendix
-      A: History</title>
+<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.InterThreads">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
 <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">
+<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>
@@ -25,10 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../appendices.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.appendices.changes"></a><a href="changes.html" title=" Appendix
-      A: History"> Appendix
+<a name="toward_boost_interthreads.appendices.changes"></a><a class="link" href="changes.html" title="Appendix A: History">Appendix
       A: History</a>
 </h3></div></div></div>
 <div class="toc"><dl>
@@ -41,22 +37,21 @@
         of Interthreads</em></span></a></span></dt>
 <dt><span class="section">Bugs</span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.changes.__version_0_1_3__mars_29__2009__extraction_of_the_asynchonous_executor_framework"></a><a href="changes.html#toward_boost_interthreads.appendices.changes.__version_0_1_3__mars_29__2009__extraction_of_the_asynchonous_executor_framework" title="Version 0.1.3, Mars 29, 2009 Extraction of the Asynchonous
-        Executor framework"><span class="bold"><strong>Version 0.1.3, Mars 29, 2009</strong></span> Extraction of the Asynchonous
+<a name="toward_boost_interthreads.appendices.changes.__version_0_1_3__mars_29__2009__extraction_of_the_asynchonous_executor_framework"></a><a class="link" href="changes.html#toward_boost_interthreads.appendices.changes.__version_0_1_3__mars_29__2009__extraction_of_the_asynchonous_executor_framework" title="Version 0.1.3, Mars 29, 2009 Extraction of the Asynchonous Executor framework"><span class="bold"><strong>Version 0.1.3, Mars 29, 2009</strong></span> Extraction of the Asynchonous
         Executor framework</a>
 </h4></div></div></div>
 <p>
           <span class="bold"><strong>New Features:</strong></span>
         </p>
-<div class="itemizedlist"><ul type="disc"><li>
-            Extraction of the Asynchonous Executor framework
-          </li></ul></div>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+              Extraction of the Asynchonous Executor framework
+            </li></ul></div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.changes.__version_0_1_2__february_8__2009__bug_fixes"></a>Version 0.1.2, February 8, 2009 Bug fixes
+<a name="toward_boost_interthreads.appendices.changes.__version_0_1_2__february_8__2009__bug_fixes"></a><a class="link" href="changes.html#toward_boost_interthreads.appendices.changes.__version_0_1_2__february_8__2009__bug_fixes" title="Version 0.1.2, February 8, 2009 Bug fixes"><span class="bold"><strong>Version 0.1.2, February 8, 2009</strong></span> Bug fixes</a>
 </h4></div></div></div>
 <p>
           <span class="bold"><strong>Fixed Bugs:</strong></span>
@@ -80,25 +75,24 @@
           and make the functions thread_safe.
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.changes.__version_0_1_1__january_14__2009__bug_fixes_and_test_on_more_toolsets"></a><a href="changes.html#toward_boost_interthreads.appendices.changes.__version_0_1_1__january_14__2009__bug_fixes_and_test_on_more_toolsets" title="Version 0.1.1, January 14, 2009 Bug fixes and test
-        on more toolsets"><span class="bold"><strong>Version 0.1.1, January 14, 2009</strong></span> Bug fixes and test
+<a name="toward_boost_interthreads.appendices.changes.__version_0_1_1__january_14__2009__bug_fixes_and_test_on_more_toolsets"></a><a class="link" href="changes.html#toward_boost_interthreads.appendices.changes.__version_0_1_1__january_14__2009__bug_fixes_and_test_on_more_toolsets" title="Version 0.1.1, January 14, 2009 Bug fixes and test on more toolsets"><span class="bold"><strong>Version 0.1.1, January 14, 2009</strong></span> Bug fixes and test
         on more toolsets</a>
 </h4></div></div></div>
 <p>
           <span class="bold"><strong>Toolsets:</strong></span>
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
-            Tested on Linux gcc 3.4.6.
-          </li>
-<li>
-            Tested on Linux gcc 4.1.2.
-          </li>
-<li>
-            Modification helping Windows (not tested)
-          </li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+              Tested on Linux gcc 3.4.6.
+            </li>
+<li class="listitem">
+              Tested on Linux gcc 4.1.2.
+            </li>
+<li class="listitem">
+              Modification helping Windows (not tested)
+            </li>
 </ul></div>
 <p>
           <span class="bold"><strong>Fixed Bugs:</strong></span>
@@ -107,43 +101,42 @@
           <span class="bold"><strong>v0.1#1: basic_keep_alive example do not link.</strong></span>
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.changes.__version_0_1_0__november_30__2008____announcement_of_interthreads_"></a><a href="changes.html#toward_boost_interthreads.appendices.changes.__version_0_1_0__november_30__2008____announcement_of_interthreads_" title="Version 0.1.0, November 30, 2008 Announcement
-        of Interthreads"><span class="bold"><strong>Version 0.1.0, November 30, 2008</strong></span> <span class="emphasis"><em>Announcement
+<a name="toward_boost_interthreads.appendices.changes.__version_0_1_0__november_30__2008____announcement_of_interthreads_"></a><a class="link" href="changes.html#toward_boost_interthreads.appendices.changes.__version_0_1_0__november_30__2008____announcement_of_interthreads_" title="Version 0.1.0, November 30, 2008 Announcement of Interthreads"><span class="bold"><strong>Version 0.1.0, November 30, 2008</strong></span> <span class="emphasis"><em>Announcement
         of Interthreads</em></span></a>
 </h4></div></div></div>
 <p>
           <span class="bold"><strong>Features:</strong></span>
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
-<code class="computeroutput"><span class="identifier">thread_decorator</span></code> setup/cleanup
-            thread decorator,
-          </li>
-<li>
-            thread specific shared pointer,
-          </li>
-<li>
-            thread keep alive mechanism,
-          </li>
-<li>
-            thread tuples, set_once synchonizer, thread_tuple_once and thread_group_once.
-          </li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+              <code class="computeroutput"><span class="identifier">thread_decorator</span></code> setup/cleanup
+              thread decorator,
+            </li>
+<li class="listitem">
+              thread specific shared pointer,
+            </li>
+<li class="listitem">
+              thread keep alive mechanism,
+            </li>
+<li class="listitem">
+              thread tuples, set_once synchonizer, thread_tuple_once and thread_group_once.
+            </li>
 </ul></div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.changes.__bugs_"></a>Bugs
+<a name="toward_boost_interthreads.appendices.changes.__bugs_"></a><a class="link" href="changes.html#toward_boost_interthreads.appendices.changes.__bugs_" title="Bugs"><span class="bold"><strong>Bugs</strong></span></a>
 </h4></div></div></div>
-<a name="toward_boost_interthreads.appendices.changes.__bugs_._emphasis_role__bold__open_bugs___emphasis_"></a><h5>
-<a name="id5034280"></a>
-          Open Bugs:
-        </h5>
-<a name="toward_boost_interthreads.appendices.changes.__bugs_._emphasis_role__bold__fixed_bugs___emphasis_"></a><h5>
-<a name="id5034308"></a>
-          Fixed Bugs:
-        </h5>
+<a name="toward_boost_interthreads.appendices.changes.__bugs_._emphasis_role__bold__open_bugs___emphasis_"></a><h6>
+<a name="id3232394"></a>
+          <a class="link" href="changes.html#toward_boost_interthreads.appendices.changes.__bugs_._emphasis_role__bold__open_bugs___emphasis_"><span class="bold"><strong>Open Bugs:</strong></span></a>
+        </h6>
+<a name="toward_boost_interthreads.appendices.changes.__bugs_._emphasis_role__bold__fixed_bugs___emphasis_"></a><h6>
+<a name="id3232422"></a>
+          <a class="link" href="changes.html#toward_boost_interthreads.appendices.changes.__bugs_._emphasis_role__bold__fixed_bugs___emphasis_"><span class="bold"><strong>Fixed Bugs:</strong></span></a>
+        </h6>
 <p>
           <span class="bold"><strong>v0.1.1#1: keep alive mechanism crash when setting
           set_on_dead_thread before enabling the mechanism.</strong></span> This was due
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/implementation.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/implementation.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/implementation.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,17 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>
-      Appendix C: Implementation Notes</title>
+<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.InterThreads">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
 <link rel="up" href="../appendices.html" title="Appendices">
-<link rel="prev" href="rationale.html" title=" Appendix
-      B: Rationale">
-<link rel="next" href="acknowledgements.html" title="
-      Appendix D: Acknowledgments">
+<link rel="prev" href="rationale.html" title="Appendix B: Rationale">
+<link rel="next" href="acknowledgements.html" title="Appendix D: Acknowledgments">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,11 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="rationale.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.appendices.implementation"></a><a href="implementation.html" title="
-      Appendix C: Implementation Notes">
-      Appendix C: Implementation Notes</a>
+<a name="toward_boost_interthreads.appendices.implementation"></a><a class="link" href="implementation.html" title="Appendix C: Implementation Notes">Appendix
+      C: Implementation Notes</a>
 </h3></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="implementation.html#toward_boost_interthreads.appendices.implementation.thread_decorator">Thread
@@ -42,10 +37,9 @@
 <dt><span class="section"><a href="implementation.html#toward_boost_interthreads.appendices.implementation.thread_tuple">Thread
         Tuple</a></span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.implementation.thread_decorator"></a><a href="implementation.html#toward_boost_interthreads.appendices.implementation.thread_decorator" title="Thread
-        Decorator">Thread
+<a name="toward_boost_interthreads.appendices.implementation.thread_decorator"></a><a class="link" href="implementation.html#toward_boost_interthreads.appendices.implementation.thread_decorator" title="Thread Decorator">Thread
         Decorator</a>
 </h4></div></div></div>
 <div class="variablelist">
@@ -53,20 +47,19 @@
 <dl>
 <dt><span class="term">Thread safe</span></dt>
 <dd><p>
-              The library is thread safe as far as the thread decorations are declared
-              staticaly, because these variables will be initialized sequentially.
-            </p></dd>
+                The library is thread safe as far as the thread decorations are declared
+                staticaly, because these variables will be initialized sequentially.
+              </p></dd>
 <dt><span class="term">Chained thread decorations</span></dt>
 <dd><p>
-              All the thread decorations are chained between them.
-            </p></dd>
+                All the thread decorations are chained between them.
+              </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.implementation.thread_specific_storage"></a><a href="implementation.html#toward_boost_interthreads.appendices.implementation.thread_specific_storage" title="Thread
-        Specific Storage">Thread
+<a name="toward_boost_interthreads.appendices.implementation.thread_specific_storage"></a><a class="link" href="implementation.html#toward_boost_interthreads.appendices.implementation.thread_specific_storage" title="Thread Specific Storage">Thread
         Specific Storage</a>
 </h4></div></div></div>
 <p>
@@ -77,94 +70,92 @@
 <dl>
 <dt><span class="term">External versus internal thread storage</span></dt>
 <dd><p>
-              The thread specific data collections can be stored either externally
-              to all threads or internally to each thread. The thread_specific_shared_ptr
-              use both ensuring efficiency when the context is requested by the current
-              thread and allowing threads to access thread specific pointer of other
-              threads
-            </p></dd>
-<dt><span class="term">Fixed- vs. variable-sized thread specific
-          key mapping</span></dt>
-<dd><p>
-              This library is based on the the Boost.Thread thread_specific_ptr implementation
-              which use a variable-size map indexed by the address of the object.
-              Future releases will provide fixed and mixed keys.
-            </p></dd>
-<dt><span class="term">Fixed- vs. variable-sized mapping of
-          thread IDs to thread specific pointers</span></dt>
-<dd><p>
-              It may be impractical to have a fixed-size array with an entry for
-              every possible thread ID value. Instead, it is more space efficient
-              to have threads use a dynamic data structure to map thread IDs to thread
-              specific pointers.
-            </p></dd>
-<dt><span class="term">One mapping of thread IDs to thread
-          specific pointers or to thread specific key mapping</span></dt>
-<dd><p>
-              This library maps thread IDs to thread specific pointers to avoid contention
-              on a single map.
-            </p></dd>
-<dt><span class="term">Default versus explicit specific context
-          setting</span></dt>
-<dd><p>
-              This library provides explicit setting. In future release will provide
-              explicit/eager and implicit/lazy specific context setting. Note that
-              implicit setting will need a factory or a default constructible type.
-            </p></dd>
+                The thread specific data collections can be stored either externally
+                to all threads or internally to each thread. The thread_specific_shared_ptr
+                use both ensuring efficiency when the context is requested by the
+                current thread and allowing threads to access thread specific pointer
+                of other threads
+              </p></dd>
+<dt><span class="term">Fixed- vs. variable-sized thread specific key mapping</span></dt>
+<dd><p>
+                This library is based on the the Boost.Thread thread_specific_ptr
+                implementation which use a variable-size map indexed by the address
+                of the object. Future releases will provide fixed and mixed keys.
+              </p></dd>
+<dt><span class="term">Fixed- vs. variable-sized mapping of thread IDs to thread specific
+            pointers</span></dt>
+<dd><p>
+                It may be impractical to have a fixed-size array with an entry for
+                every possible thread ID value. Instead, it is more space efficient
+                to have threads use a dynamic data structure to map thread IDs to
+                thread specific pointers.
+              </p></dd>
+<dt><span class="term">One mapping of thread IDs to thread specific pointers or to thread
+            specific key mapping</span></dt>
+<dd><p>
+                This library maps thread IDs to thread specific pointers to avoid
+                contention on a single map.
+              </p></dd>
+<dt><span class="term">Default versus explicit specific context setting</span></dt>
+<dd><p>
+                This library provides explicit setting. In future release will provide
+                explicit/eager and implicit/lazy specific context setting. Note that
+                implicit setting will need a factory or a default constructible type.
+              </p></dd>
 <dt><span class="term">Ordered or unordered map</span></dt>
 <dd><p>
-              While the thread::id type is ordered, there is no need to use it. The
-              current implementation use an ordered map. Future version will allow
-              the user to configure this.
-            </p></dd>
+                While the thread::id type is ordered, there is no need to use it.
+                The current implementation use an ordered map. Future version will
+                allow the user to configure this.
+              </p></dd>
 <dt><span class="term">Intrusive or not maps</span></dt>
 <dd><p>
-              As the thread specific pointer is stored on only one map the implementation
-              could use an intrusive container. This will be provided in future releases
-            </p></dd>
+                As the thread specific pointer is stored on only one map the implementation
+                could use an intrusive container. This will be provided in future
+                releases
+              </p></dd>
 <dt><span class="term">Shared versus exclusive locking</span></dt>
 <dd><p>
-              Locating the right TS pointer requires the use of mutex to prevent
-              race conditions. The library use a a shared_mutex because most of the
-              access to the map will be readings by other threads. The problem is
-              that the native conditions can not be used directly with shared mutex.
-              Some benchmarks will be needed before decidinf which implementation
-              is the best.
-            </p></dd>
+                Locating the right TS pointer requires the use of mutex to prevent
+                race conditions. The library use a a shared_mutex because most of
+                the access to the map will be readings by other threads. The problem
+                is that the native conditions can not be used directly with shared
+                mutex. Some benchmarks will be needed before decidinf which implementation
+                is the best.
+              </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.implementation.keep_alive"></a><a href="implementation.html#toward_boost_interthreads.appendices.implementation.keep_alive" title="Keep
-        Alive">Keep
+<a name="toward_boost_interthreads.appendices.implementation.keep_alive"></a><a class="link" href="implementation.html#toward_boost_interthreads.appendices.implementation.keep_alive" title="Keep Alive">Keep
         Alive</a>
 </h4></div></div></div>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
-<dt><span class="term">Ensuring keep alive manager singleton
-          is initialized and the thread specific shared storage is set before use</span></dt>
+<dt><span class="term">Ensuring keep alive manager singleton is initialized and the thread
+            specific shared storage is set before use</span></dt>
 <dd><p>
-              The use of the thread decoration ensures that the decoration are called
-              before the user thread function is called. The keep_alive decoration
-              use the call_once to ensure that the keep_alive manager is correctly
-              initialized.
-            </p></dd>
+                The use of the thread decoration ensures that the decoration are
+                called before the user thread function is called. The keep_alive
+                decoration use the call_once to ensure that the keep_alive manager
+                is correctly initialized.
+              </p></dd>
 <dt><span class="term">backup/restore context</span></dt>
 <dd><p>
-              The real thread specific data is stored directly on the stack of enablers/disablers
-              avoiding heap memory. On enablers/disablers construction they store
-              a backup pointer to the nesting context. This allows a quick restore.
-              The keep alive pointer contains just a pointer to this data.
-            </p></dd>
+                The real thread specific data is stored directly on the stack of
+                enablers/disablers avoiding heap memory. On enablers/disablers construction
+                they store a backup pointer to the nesting context. This allows a
+                quick restore. The keep alive pointer contains just a pointer to
+                this data.
+              </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.implementation.thread_tuple"></a><a href="implementation.html#toward_boost_interthreads.appendices.implementation.thread_tuple" title="Thread
-        Tuple">Thread
+<a name="toward_boost_interthreads.appendices.implementation.thread_tuple"></a><a class="link" href="implementation.html#toward_boost_interthreads.appendices.implementation.thread_tuple" title="Thread Tuple">Thread
         Tuple</a>
 </h4></div></div></div>
 <div class="variablelist">
@@ -172,11 +163,11 @@
 <dl>
 <dt><span class="term">Joining the first finishing thread</span></dt>
 <dd><p>
-              In order to synchronize the end of all the threads the libarry use
-              a internal class which stores the index of the first thread notifying
-              that it is finished. As the user function has no idea of this index
-              we need to wrap the user thread functions.
-            </p></dd>
+                In order to synchronize the end of all the threads the libarry use
+                a internal class which stores the index of the first thread notifying
+                that it is finished. As the user function has no idea of this index
+                we need to wrap the user thread functions.
+              </p></dd>
 </dl>
 </div>
 </div>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/rationale.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/rationale.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/rationale.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,17 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title> Appendix
-      B: Rationale</title>
+<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.InterThreads">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
 <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">
+<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>
@@ -26,10 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="changes.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="implementation.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.appendices.rationale"></a><a href="rationale.html" title=" Appendix
-      B: Rationale"> Appendix
+<a name="toward_boost_interthreads.appendices.rationale"></a><a class="link" href="rationale.html" title="Appendix B: Rationale">Appendix
       B: Rationale</a>
 </h3></div></div></div>
 <div class="toc"><dl>
@@ -42,10 +37,9 @@
 <dt><span class="section"><a href="rationale.html#toward_boost_interthreads.appendices.rationale.thread_tuple">Thread
         Tuple</a></span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.rationale.thread_decorator"></a><a href="rationale.html#toward_boost_interthreads.appendices.rationale.thread_decorator" title="Thread
-        Decorator">Thread
+<a name="toward_boost_interthreads.appendices.rationale.thread_decorator"></a><a class="link" href="rationale.html#toward_boost_interthreads.appendices.rationale.thread_decorator" title="Thread Decorator">Thread
         Decorator</a>
 </h4></div></div></div>
 <div class="variablelist">
@@ -53,23 +47,22 @@
 <dl>
 <dt><span class="term">Function wrapper versus thread refinement</span></dt>
 <dd><p>
-              The threadalert on which this library was initialy based redefined
-              the boost:thread class which called implicitly the wrapper. As the
-              single varying features between both threads was this wrapping of the
-              thread function it has been isolated in the interthreads library.
-            </p></dd>
+                The threadalert on which this library was initialy based redefined
+                the boost:thread class which called implicitly the wrapper. As the
+                single varying features between both threads was this wrapping of
+                the thread function it has been isolated in the interthreads library.
+              </p></dd>
 <dt><span class="term">Static decoration variables</span></dt>
 <dd><p>
-              Thread decorations construction is not thread safe and must be done
-              before other threads have been created and the <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code> function is called.
-            </p></dd>
+                Thread decorations construction is not thread safe and must be done
+                before other threads have been created and the <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code> function is called.
+              </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.rationale.thread_specific_storage"></a><a href="rationale.html#toward_boost_interthreads.appendices.rationale.thread_specific_storage" title="Thread
-        Specific Storage">Thread
+<a name="toward_boost_interthreads.appendices.rationale.thread_specific_storage"></a><a class="link" href="rationale.html#toward_boost_interthreads.appendices.rationale.thread_specific_storage" title="Thread Specific Storage">Thread
         Specific Storage</a>
 </h4></div></div></div>
 <div class="variablelist">
@@ -77,25 +70,24 @@
 <dl>
 <dt><span class="term">Non copiable/Non movable</span></dt>
 <dd><p>
-              Specific pointers are singletons.
-            </p></dd>
+                Specific pointers are singletons.
+              </p></dd>
 <dt><span class="term">External locking</span></dt>
 <dd><p>
-              In order to ensure thread safety while providing as much functionality
-              as possible the class allows to get the map of thread specific contexts
-              as soon as the application provides a <code class="computeroutput"><span class="identifier">unique_lock</span></code>.
-            </p></dd>
+                In order to ensure thread safety while providing as much functionality
+                as possible the class allows to get the map of thread specific contexts
+                as soon as the application provides a <code class="computeroutput"><span class="identifier">unique_lock</span></code>.
+              </p></dd>
 <dt><span class="term">Mimic thread_specific_ptr</span></dt>
 <dd>
 <p>
-              From the point of view of the current thread thread_specific_shared_ptr
-              behaves as a thread_specific_ptr. From it we takes:
-            </p>
+                From the point of view of the current thread thread_specific_shared_ptr
+                behaves as a thread_specific_ptr. From it we takes:
+              </p>
 <p>
-              
+                
 </p>
-<pre class="programlisting">
-<span class="identifier">thread_specific_shared_ptr</span><span class="special">();</span>
+<pre class="programlisting"><span class="identifier">thread_specific_shared_ptr</span><span class="special">();</span>
 <span class="keyword">explicit</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special">(</span><span class="keyword">void</span> <span class="special">(*</span><span class="identifier">cleanup_</span><span class="special">)(</span><span class="identifier">shared_ptr_type</span><span class="special">));</span>
 <span class="identifier">T</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</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">const</span><span class="special">;</span>
@@ -104,21 +96,20 @@
 <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">);</span>
 </pre>
 <p>
-            </p>
+              </p>
 </dd>
 <dt><span class="term">Mimic shared_ptr</span></dt>
 <dd>
 <p>
-              From the point of view of the other threads thread_specific_shared_ptr
-              behaves as a shared_ptr lockup. From the point of view of the current
-              thread the stored pointer is located in a shared_pointer, so we can
-              use the shared_ptr deleter feature From shared_ptr takes:
-            </p>
+                From the point of view of the other threads thread_specific_shared_ptr
+                behaves as a shared_ptr lockup. From the point of view of the current
+                thread the stored pointer is located in a shared_pointer, so we can
+                use the shared_ptr deleter feature From shared_ptr takes:
+              </p>
 <p>
-              
+                
 </p>
-<pre class="programlisting">
-<span class="identifier">T</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">T</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</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">const</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">const</span><span class="special">;</span>
 <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">();</span>
@@ -127,24 +118,23 @@
 <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</span><span class="special">);</span>
 </pre>
 <p>
-            </p>
+              </p>
 </dd>
-<dt><span class="term">Why doesn't thread_specific_shared_ptr
-          provide a release() function?</span></dt>
+<dt><span class="term">Why doesn't thread_specific_shared_ptr provide a release() function?</span></dt>
 <dd><p>
-              As it store a shared_ptr, it cannot give away ownership unless it's
-              unique() because the other copy will still destroy the object.
-            </p></dd>
+                As it store a shared_ptr, it cannot give away ownership unless it's
+                unique() because the other copy will still destroy the object.
+              </p></dd>
 </dl>
 </div>
-<a name="toward_boost_interthreads.appendices.rationale.thread_specific_storage.comparaing_tsss_and_tss"></a><h5>
-<a name="id5035216"></a>
-          <a href="rationale.html#toward_boost_interthreads.appendices.rationale.thread_specific_storage.comparaing_tsss_and_tss">Comparaing
+<a name="toward_boost_interthreads.appendices.rationale.thread_specific_storage.comparaing_tsss_and_tss"></a><h6>
+<a name="id3233334"></a>
+          <a class="link" href="rationale.html#toward_boost_interthreads.appendices.rationale.thread_specific_storage.comparaing_tsss_and_tss">Comparaing
           TSSS and TSS</a>
-        </h5>
+        </h6>
 <div class="table">
-<a name="id5035232"></a><p class="title"><b>Table 1. Comparaing TSSS and TSS</b></p>
-<table class="table" summary="Comparaing TSSS and TSS">
+<a name="toward_boost_interthreads.appendices.rationale.thread_specific_storage.comparaing_tsss_and_tss"></a><p class="title"><b>Table 1. Comparaing TSSS and TSS</b></p>
+<div class="table-contents"><table class="table" summary="Comparaing TSSS and TSS">
 <colgroup>
 <col>
 <col>
@@ -153,424 +143,423 @@
 </colgroup>
 <thead><tr>
 <th>
-              <p>
-                Feature
-              </p>
-              </th>
+                  <p>
+                    Feature
+                  </p>
+                </th>
 <th>
-              <p>
-                thread_specific_shared_ptr
-              </p>
-              </th>
+                  <p>
+                    thread_specific_shared_ptr
+                  </p>
+                </th>
 <th>
-              <p>
-                thread_specific_ptr
-              </p>
-              </th>
+                  <p>
+                    thread_specific_ptr
+                  </p>
+                </th>
 <th>
-              <p>
-                Compatible
-              </p>
-              </th>
+                  <p>
+                    Compatible
+                  </p>
+                </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
-              <p>
-                ownership
-              </p>
-              </td>
+                  <p>
+                    ownership
+                  </p>
+                </td>
 <td>
-              <p>
-                shared
-              </p>
-              </td>
+                  <p>
+                    shared
+                  </p>
+                </td>
 <td>
-              <p>
-                exclusive
-              </p>
-              </td>
+                  <p>
+                    exclusive
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                default constructor
-              </p>
-              </td>
+                  <p>
+                    default constructor
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                cleanup constructor
-              </p>
-              </td>
+                  <p>
+                    cleanup constructor
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>: can not delete the pointer
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>: can not delete the pointer
+                  </p>
+                </td>
 <td>
-              <p>
-                yes:must delete the pointer
-              </p>
-              </td>
+                  <p>
+                    yes:must delete the pointer
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">T</span><span class="special">*)</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">T</span><span class="special">*)</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span><span class="special">*)</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span><span class="special">*)</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span><span class="special">*,</span><span class="identifier">D</span><span class="special">)</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span><span class="special">*,</span><span class="identifier">D</span><span class="special">)</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span><span class="special">*,</span><span class="identifier">D</span><span class="special">,</span><span class="identifier">A</span><span class="special">)</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span><span class="special">*,</span><span class="identifier">D</span><span class="special">,</span><span class="identifier">A</span><span class="special">)</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">release</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">release</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 </tbody>
-</table>
+</table></div>
 </div>
+<br class="table-break">
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.rationale.keep_alive"></a><a href="rationale.html#toward_boost_interthreads.appendices.rationale.keep_alive" title="Keep
-        Alive">Keep
+<a name="toward_boost_interthreads.appendices.rationale.keep_alive"></a><a class="link" href="rationale.html#toward_boost_interthreads.appendices.rationale.keep_alive" title="Keep Alive">Keep
         Alive</a>
 </h4></div></div></div>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
-<dt><span class="term">Can a thread that has just do a check
-          point be considered as dead less than one second after?</span></dt>
+<dt><span class="term">Can a thread that has just do a check point be considered as dead
+            less than one second after?</span></dt>
 <dd><p>
-              Whell this depends on the enabling parameters. If the checking parameter
-              is greater than one it could be possible that the thread do a check_point
-              just before the keep alive manager do the check, seen that there are
-              not enough check_points and declaring the thread dead. If you want
-              to avoid this situation let the checkin to 1.
-            </p></dd>
+                Whell this depends on the enabling parameters. If the checking parameter
+                is greater than one it could be possible that the thread do a check_point
+                just before the keep alive manager do the check, seen that there
+                are not enough check_points and declaring the thread dead. If you
+                want to avoid this situation let the checkin to 1.
+              </p></dd>
 <dt><span class="term">Nesting enablers and disablers</span></dt>
 <dd><p>
-              Enablers/disablers use RAII, so they can be nested and the context
-              be restored on the destructor.
-            </p></dd>
+                Enablers/disablers use RAII, so they can be nested and the context
+                be restored on the destructor.
+              </p></dd>
 <dt><span class="term">Configurable on dead action</span></dt>
 <dd><p>
-              The default action is to abort the process because I don't see any
-              generic and cleaner way to manage this event. The library provides
-              this hook for user wanting to try something specific.
-            </p></dd>
+                The default action is to abort the process because I don't see any
+                generic and cleaner way to manage this event. The library provides
+                this hook for user wanting to try something specific.
+              </p></dd>
 <dt><span class="term">Who control the controler?</span></dt>
 <dd><p>
-              There is no way to control this thread other than adding an external
-              process.
-            </p></dd>
+                There is no way to control this thread other than adding an external
+                process.
+              </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.rationale.thread_tuple"></a><a href="rationale.html#toward_boost_interthreads.appendices.rationale.thread_tuple" title="Thread
-        Tuple">Thread
+<a name="toward_boost_interthreads.appendices.rationale.thread_tuple"></a><a class="link" href="rationale.html#toward_boost_interthreads.appendices.rationale.thread_tuple" title="Thread Tuple">Thread
         Tuple</a>
 </h4></div></div></div>
 <div class="variablelist">
@@ -578,43 +567,39 @@
 <dl>
 <dt><span class="term">Why must be not copiable?</span></dt>
 <dd><p>
-              Thread tuples can not be copiable since boost::thread is not copiable.
-            </p></dd>
+                Thread tuples can not be copiable since boost::thread is not copiable.
+              </p></dd>
 <dt><span class="term">Why should be movable?</span></dt>
 <dd><p>
-              If we want functions to return Thread tuples it is necessary to make
-              them movable.
-            </p></dd>
+                If we want functions to return Thread tuples it is necessary to make
+                them movable.
+              </p></dd>
 <dt><span class="term">Mimic boost::thread_group</span></dt>
 <dd>
 <p>
-              thread_tuple has in common some function found in thread_group. From
-              it we take
-            </p>
+                thread_tuple has in common some function found in thread_group. From
+                it we take
+              </p>
 <p>
-              
+                
 </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
 <span class="keyword">void</span> <span class="identifier">interrupt_all</span><span class="special">();</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">size</span><span class="special">();</span>
 </pre>
 <p>
-            </p>
-<p>
-            </p>
+              </p>
 </dd>
 <dt><span class="term">Mimic boost::thread</span></dt>
 <dd>
 <p>
-              We can consider a thread tuple as a compound thread, and so we can
-              mimic the thread intyerface. From it we takes
-            </p>
+                We can consider a thread tuple as a compound thread, and so we can
+                mimic the thread intyerface. From it we takes
+              </p>
 <p>
-              
+                
 </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">join</span><span class="special">();</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join</span><span class="special">();</span>
 <span class="keyword">void</span> <span class="identifier">interrupt</span><span class="special">();</span>
 <span class="keyword">void</span> <span class="identifier">detach</span><span class="special">/</span><span class="identifier">detach_all</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>
@@ -622,48 +607,39 @@
 <span class="keyword">bool</span> <span class="identifier">joinable</span><span class="special">/</span><span class="identifier">all_joinable</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
-            </p>
-<p>
-            </p>
+              </p>
 </dd>
-<dt><span class="term">Why the user can not modify directly
-          the embeeded threads?</span></dt>
+<dt><span class="term">Why the user can not modify directly the embeeded threads?</span></dt>
 <dd>
 <p>
-            </p>
-<p>
-              The library provides a safe function to get a constant thread reference
-            </p>
+                The library provides a safe function to get a constant thread reference
+              </p>
 <p>
-              
+                
 </p>
-<pre class="programlisting">
-<span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
 <p>
-            </p>
-<p>
-              The problem if we provide the non constant variant is that the user
-              can detach them.
-            </p>
+              </p>
 <p>
-            </p>
+                The problem if we provide the non constant variant is that the user
+                can detach them.
+              </p>
 </dd>
-<dt><span class="term">Joining the first finishing thread
-          of a thread tuple</span></dt>
+<dt><span class="term">Joining the first finishing thread of a thread tuple</span></dt>
 <dd><p>
-              This functionallity has a price. We need to synchronize all the threads
-              transparently, so we need to wrap the user thread functions.
-            </p></dd>
+                This functionallity has a price. We need to synchronize all the threads
+                transparently, so we need to wrap the user thread functions.
+              </p></dd>
 </dl>
 </div>
-<a name="toward_boost_interthreads.appendices.rationale.thread_tuple.comparaing_thread__thread_group_and_thread_tuple"></a><h5>
-<a name="id5036636"></a>
-          <a href="rationale.html#toward_boost_interthreads.appendices.rationale.thread_tuple.comparaing_thread__thread_group_and_thread_tuple">Comparaing
+<a name="toward_boost_interthreads.appendices.rationale.thread_tuple.comparaing_thread__thread_group_and_thread_tuple"></a><h6>
+<a name="id3234827"></a>
+          <a class="link" href="rationale.html#toward_boost_interthreads.appendices.rationale.thread_tuple.comparaing_thread__thread_group_and_thread_tuple">Comparaing
           thread, thread_group and thread_tuple</a>
-        </h5>
+        </h6>
 <div class="table">
-<a name="id5036652"></a><p class="title"><b>Table 2. Comparaing thread, thread_group and thread_tuple</b></p>
-<table class="table" summary="Comparaing thread, thread_group and thread_tuple">
+<a name="toward_boost_interthreads.appendices.rationale.thread_tuple.comparaing_thread__thread_group_and_thread_tuple"></a><p class="title"><b>Table 2. Comparaing thread, thread_group and thread_tuple</b></p>
+<div class="table-contents"><table class="table" summary="Comparaing thread, thread_group and thread_tuple">
 <colgroup>
 <col>
 <col>
@@ -673,455 +649,455 @@
 </colgroup>
 <thead><tr>
 <th>
-              <p>
-                Feature
-              </p>
-              </th>
+                  <p>
+                    Feature
+                  </p>
+                </th>
 <th>
-              <p>
-                thread
-              </p>
-              </th>
+                  <p>
+                    thread
+                  </p>
+                </th>
 <th>
-              <p>
-                thread_group
-              </p>
-              </th>
+                  <p>
+                    thread_group
+                  </p>
+                </th>
 <th>
-              <p>
-                thread_tuple
-              </p>
-              </th>
+                  <p>
+                    thread_tuple
+                  </p>
+                </th>
 <th>
-              <p>
-                Compatible
-              </p>
-              </th>
+                  <p>
+                    Compatible
+                  </p>
+                </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
-              <p>
-                default constructor
-              </p>
-              </td>
+                  <p>
+                    default constructor
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                copiable
-              </p>
-              </td>
+                  <p>
+                    copiable
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                movable
-              </p>
-              </td>
+                  <p>
+                    movable
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">joinable</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">joinable</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no*
-              </p>
-              </td>
+                  <p>
+                    no*
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no*
-              </p>
-              </td>
+                  <p>
+                    no*
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no*
-              </p>
-              </td>
+                  <p>
+                    no*
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">interruption_requested</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">interruption_requested</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no*
-              </p>
-              </td>
+                  <p>
+                    no*
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">timed_join_all</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">timed_join_all</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no* *
-              </p>
-              </td>
+                  <p>
+                    no* *
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">join_first_then_interrupt</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">join_first_then_interrupt</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no* * *
-              </p>
-              </td>
+                  <p>
+                    no* * *
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no* * *
-              </p>
-              </td>
+                  <p>
+                    no* * *
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 </tr>
 <tr>
 <td>
-              <p>
-                <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code>
-              </p>
-              </td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code>
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no
-              </p>
-              </td>
+                  <p>
+                    no
+                  </p>
+                </td>
 <td>
-              <p>
-                <span class="bold"><strong>yes</strong></span>
-              </p>
-              </td>
+                  <p>
+                    <span class="bold"><strong>yes</strong></span>
+                  </p>
+                </td>
 <td>
-              <p>
-                no*
-              </p>
-              </td>
+                  <p>
+                    no*
+                  </p>
+                </td>
 </tr>
 </tbody>
-</table>
+</table></div>
 </div>
-<div class="variablelist">
+<br class="table-break"><div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term">*</span></dt>
 <dd><p>
-              thread_group could add these synonym functions
-            </p></dd>
+                thread_group could add these synonym functions
+              </p></dd>
 <dt><span class="term">* *</span></dt>
 <dd><p>
-              thread could add the size function returning 1
-            </p></dd>
+                thread could add the size function returning 1
+              </p></dd>
 <dt><span class="term">* * *</span></dt>
 <dd><p>
-              thread & thread_group could add these functions
-            </p></dd>
+                thread & thread_group could add these functions
+              </p></dd>
 </dl>
 </div>
 </div>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/tests.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/tests.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/tests.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,17 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title> Appendix
-      E: Tests</title>
+<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.InterThreads">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
 <link rel="up" href="../appendices.html" title="Appendices">
-<link rel="prev" href="acknowledgements.html" title="
-      Appendix D: Acknowledgments">
-<link rel="next" href="tickets.html" title=" Appendix
-      F: Tickets">
+<link rel="prev" href="acknowledgements.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>
@@ -26,16 +22,15 @@
 <div class="spirit-nav">
 <a accesskey="p" href="acknowledgements.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tickets.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.appendices.tests"></a><a href="tests.html" title=" Appendix
-      E: Tests"> Appendix
+<a name="toward_boost_interthreads.appendices.tests"></a><a class="link" href="tests.html" title="Appendix E: Tests">Appendix
       E: Tests</a>
 </h3></div></div></div>
 <div class="toc"><dl><dt><span class="section">thread_specific_shared_pointer</span></dt></dl></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.tests.thread_specific_shared_pointer"></a>thread_specific_shared_pointer
+<a name="toward_boost_interthreads.appendices.tests.thread_specific_shared_pointer"></a><a class="link" href="tests.html#toward_boost_interthreads.appendices.tests.thread_specific_shared_pointer" title="thread_specific_shared_pointer">thread_specific_shared_pointer</a>
 </h4></div></div></div>
 <div class="informaltable"><table class="table">
 <colgroup></colgroup>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/tickets.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/tickets.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/tickets.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,17 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title> Appendix
-      F: Tickets</title>
+<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.InterThreads">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
 <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">
+<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>
@@ -26,10 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tests.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="todo.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.appendices.tickets"></a><a href="tickets.html" title=" Appendix
-      F: Tickets"> Appendix
+<a name="toward_boost_interthreads.appendices.tickets"></a><a class="link" href="tickets.html" title="Appendix F: Tickets">Appendix
       F: Tickets</a>
 </h3></div></div></div>
 <div class="informaltable"><table class="table">
@@ -44,228 +39,228 @@
 </colgroup>
 <thead><tr>
 <th>
-              <p>
-                Kind
-              </p>
+                <p>
+                  Kind
+                </p>
               </th>
 <th>
-              <p>
-                Identifier
-              </p>
+                <p>
+                  Identifier
+                </p>
               </th>
 <th>
-              <p>
-                Description
-              </p>
+                <p>
+                  Description
+                </p>
               </th>
 <th>
-              <p>
-                Resolution
-              </p>
+                <p>
+                  Resolution
+                </p>
               </th>
 <th>
-              <p>
-                State
-              </p>
+                <p>
+                  State
+                </p>
               </th>
 <th>
-              <p>
-                Tests
-              </p>
+                <p>
+                  Tests
+                </p>
               </th>
 <th>
-              <p>
-                Version
-              </p>
+                <p>
+                  Version
+                </p>
               </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
-              <p>
-                bug
-              </p>
+                <p>
+                  bug
+                </p>
               </td>
 <td>
-              <p>
-                v0.1#1
-              </p>
+                <p>
+                  v0.1#1
+                </p>
               </td>
 <td>
-              <p>
-                basic_keep_alive example do not link
-              </p>
+                <p>
+                  basic_keep_alive example do not link
+                </p>
               </td>
 <td>
-              <p>
-                Add to the link
-              </p>
+                <p>
+                  Add to the link
+                </p>
               </td>
 <td>
-              <p>
-                Closed
-              </p>
+                <p>
+                  Closed
+                </p>
               </td>
 <td>
-              <p>
-                See basic_keep_alive.cpp example
-              </p>
+                <p>
+                  See basic_keep_alive.cpp example
+                </p>
               </td>
 <td>
-              <p>
-                v0.2
-              </p>
+                <p>
+                  v0.2
+                </p>
               </td>
 </tr>
 <tr>
 <td>
-              <p>
-                bug
-              </p>
+                <p>
+                  bug
+                </p>
               </td>
 <td>
-              <p>
-                v0.1.1#1
-              </p>
+                <p>
+                  v0.1.1#1
+                </p>
               </td>
 <td>
-              <p>
-                keep alive mechanism crash when setting set_on_dead_thread before
-                enabling the mechanism
-              </p>
+                <p>
+                  keep alive mechanism crash when setting set_on_dead_thread before
+                  enabling the mechanism
+                </p>
               </td>
 <td>
-              <p>
-                This was due to the fact that there were no default data for the
-                backup.
-              </p>
+                <p>
+                  This was due to the fact that there were no default data for the
+                  backup.
+                </p>
               </td>
 <td>
-              <p>
-                Closed
-              </p>
+                <p>
+                  Closed
+                </p>
               </td>
 <td>
-              <p>
-                See basic_keep_alive.cpp example
-              </p>
+                <p>
+                  See basic_keep_alive.cpp example
+                </p>
               </td>
 <td>
-              <p>
-                v0.4
-              </p>
+                <p>
+                  v0.4
+                </p>
               </td>
 </tr>
 <tr>
 <td>
-              <p>
-                bug
-              </p>
+                <p>
+                  bug
+                </p>
               </td>
 <td>
-              <p>
-                v0.1.1#2
-              </p>
+                <p>
+                  v0.1.1#2
+                </p>
               </td>
 <td>
-              <p>
-                keep alive mechanism do not detect dead threads
-              </p>
+                <p>
+                  keep alive mechanism do not detect dead threads
+                </p>
               </td>
 <td>
-              <p>
-                We need to reset the counters only when the period is 0.
-              </p>
+                <p>
+                  We need to reset the counters only when the period is 0.
+                </p>
               </td>
 <td>
-              <p>
-                Closed
-              </p>
+                <p>
+                  Closed
+                </p>
               </td>
 <td>
-              <p>
-                See basic_keep_alive.cpp example
-              </p>
+                <p>
+                  See basic_keep_alive.cpp example
+                </p>
               </td>
 <td>
-              <p>
-                v0.4
-              </p>
+                <p>
+                  v0.4
+                </p>
               </td>
 </tr>
 <tr>
 <td>
-              <p>
-                bug
-              </p>
+                <p>
+                  bug
+                </p>
               </td>
 <td>
-              <p>
-                v0.1.1#3
-              </p>
+                <p>
+                  v0.1.1#3
+                </p>
               </td>
 <td>
-              <p>
-                The set_on_dead_thread setting is not recovered by embeeding enablers/disablers
-              </p>
+                <p>
+                  The set_on_dead_thread setting is not recovered by embeeding enablers/disablers
+                </p>
               </td>
 <td>
-              <p>
-                The problem is that the on_dead and th thread pointer were stored
-                on the backup. It is enough to store them on the
-              </p>
+                <p>
+                  The problem is that the on_dead and th thread pointer were stored
+                  on the backup. It is enough to store them on the
+                </p>
               </td>
 <td>
-              <p>
-                Closed
-              </p>
+                <p>
+                  Closed
+                </p>
               </td>
 <td>
-              <p>
-                See basic_keep_alive.cpp example
-              </p>
+                <p>
+                  See basic_keep_alive.cpp example
+                </p>
               </td>
 <td>
-              <p>
-                v0.4
-              </p>
+                <p>
+                  v0.4
+                </p>
               </td>
 </tr>
 <tr>
 <td>
-              <p>
-                bug
-              </p>
+                <p>
+                  bug
+                </p>
               </td>
 <td>
-              <p>
-                v0.2.0#1
-              </p>
+                <p>
+                  v0.2.0#1
+                </p>
               </td>
 <td>
-              <p>
-                xxx
-              </p>
+                <p>
+                  xxx
+                </p>
               </td>
 <td>
-              <p>
-                xx
-              </p>
+                <p>
+                  xx
+                </p>
               </td>
 <td>
-              <p>
-                Open
-              </p>
+                <p>
+                  Open
+                </p>
               </td>
 <td>
-              <p>
-                xxx
-              </p>
+                <p>
+                  xxx
+                </p>
               </td>
 <td>
-              <p>
-                v0.4.1
-              </p>
+                <p>
+                  v0.4.1
+                </p>
               </td>
 </tr>
 </tbody>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/todo.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/todo.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/appendices/todo.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,15 +1,12 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title> Appendix
-      G: Future plans</title>
+<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.InterThreads">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
 <link rel="up" href="../appendices.html" title="Appendices">
-<link rel="prev" href="tickets.html" title=" Appendix
-      F: Tickets">
+<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>
@@ -24,11 +21,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tickets.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.appendices.todo"></a><a href="todo.html" title=" Appendix
-      G: Future plans"> Appendix
-      G: Future plans</a>
+<a name="toward_boost_interthreads.appendices.todo"></a><a class="link" 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_interthreads.appendices.todo.tasks_to_do_before_review">Tasks
@@ -36,100 +32,99 @@
 <dt><span class="section"><a href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases">For
         later releases</a></span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.todo.tasks_to_do_before_review"></a><a href="todo.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review" title="Tasks
-        to do before review">Tasks
+<a name="toward_boost_interthreads.appendices.todo.tasks_to_do_before_review"></a><a class="link" href="todo.html#toward_boost_interthreads.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_interthreads.appendices.todo.tasks_to_do_before_review.complete_the_tests"></a><h5>
-<a name="id5038397"></a>
-          <a href="todo.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.complete_the_tests">Complete
+<a name="toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.complete_the_tests"></a><h6>
+<a name="id3236864"></a>
+          <a class="link" href="todo.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.complete_the_tests">Complete
           the tests</a>
-        </h5>
+        </h6>
 <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>
-            Add test with functions throwing
-          </li>
-<li>
-            Formalize the tests for thread_decoratoor
-          </li>
-<li>
-            Formalize the tests for thread_specific_shared_ptr
-          </li>
-<li>
-            Add tests for keep alive mechanism
-          </li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+              change the test so they take less time using locks; conditions and
+              variables.
+            </li>
+<li class="listitem">
+              Add test with functions throwing
+            </li>
+<li class="listitem">
+              Formalize the tests for thread_decoratoor
+            </li>
+<li class="listitem">
+              Formalize the tests for thread_specific_shared_ptr
+            </li>
+<li class="listitem">
+              Add tests for keep alive mechanism
+            </li>
 </ul></div>
-<a name="toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.add_more_examples"></a><h5>
-<a name="id5038453"></a>
-          <a href="todo.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.add_more_examples">Add
+<a name="toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.add_more_examples"></a><h6>
+<a name="id3236937"></a>
+          <a class="link" href="todo.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.add_more_examples">Add
           more examples</a>
-        </h5>
-<div class="itemizedlist"><ul type="disc">
-<li>
-            Complete the STM example.
-          </li>
-<li>
-            Change the implementation of the file on the async_ostream.
-          </li>
+        </h6>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+              Complete the STM example.
+            </li>
+<li class="listitem">
+              Change the implementation of the file on the async_ostream.
+            </li>
 </ul></div>
-<a name="toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.change_the_rational_and_implementation_sections"></a><h5>
-<a name="id5038490"></a>
-          <a href="todo.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.change_the_rational_and_implementation_sections">Change
+<a name="toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.change_the_rational_and_implementation_sections"></a><h6>
+<a name="id3236980"></a>
+          <a class="link" href="todo.html#toward_boost_interthreads.appendices.todo.tasks_to_do_before_review.change_the_rational_and_implementation_sections">Change
           the rational and implementation sections</a>
-        </h5>
+        </h6>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.appendices.todo.for_later_releases"></a><a href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases" title="For
-        later releases">For
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases"></a><a class="link" href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases" title="For later releases">For
         later releases</a>
 </h4></div></div></div>
-<a name="toward_boost_interthreads.appendices.todo.for_later_releases.add_c__0x_move_semantics_on_compilers_supporting_it_and_use_the_boost_move_emulation_otherwise"></a><h5>
-<a name="id5038532"></a>
-          <a href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases.add_c__0x_move_semantics_on_compilers_supporting_it_and_use_the_boost_move_emulation_otherwise">Add
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.add_c__0x_move_semantics_on_compilers_supporting_it_and_use_the_boost_move_emulation_otherwise"></a><h6>
+<a name="id3237022"></a>
+          <a class="link" href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases.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>
-<a name="toward_boost_interthreads.appendices.todo.for_later_releases.use_c__0x_variadic_templates_on_compilers_supporting_it_and_use_the_preprocesor_otherwise"></a><h5>
-<a name="id5038563"></a>
-          <a href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases.use_c__0x_variadic_templates_on_compilers_supporting_it_and_use_the_preprocesor_otherwise">Use
+        </h6>
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.use_c__0x_variadic_templates_on_compilers_supporting_it_and_use_the_preprocesor_otherwise"></a><h6>
+<a name="id3237052"></a>
+          <a class="link" href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases.use_c__0x_variadic_templates_on_compilers_supporting_it_and_use_the_preprocesor_otherwise">Use
           C++0x variadic templates on compilers supporting it and use the preprocesor
           otherwise</a>
-        </h5>
-<a name="toward_boost_interthreads.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="id5038593"></a>
-          <a href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases.use_c__0x_concepts_on_compilers_supporting_them_and_use_the_boost_conceptcheck_or_boost_concepttraits_otherwise">Use
+        </h6>
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.use_c__0x_concepts_on_compilers_supporting_them_and_use_the_boost_conceptcheck_or_boost_concepttraits_otherwise"></a><h6>
+<a name="id3237082"></a>
+          <a class="link" href="todo.html#toward_boost_interthreads.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>
-<a name="toward_boost_interthreads.appendices.todo.for_later_releases.add_a_daemon_controlling_all_the_keep_alive_controller_threads"></a><h5>
-<a name="id5038624"></a>
-          <a href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases.add_a_daemon_controlling_all_the_keep_alive_controller_threads">Add
+        </h6>
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.add_a_daemon_controlling_all_the_keep_alive_controller_threads"></a><h6>
+<a name="id3237113"></a>
+          <a class="link" href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases.add_a_daemon_controlling_all_the_keep_alive_controller_threads">Add
           a daemon controlling all the keep alive controller threads</a>
-        </h5>
+        </h6>
 <p>
           This daemon will send regular keep_alive messages and kill the process
           when dead.
         </p>
-<a name="toward_boost_interthreads.appendices.todo.for_later_releases.optimize_the_tsss_maps_using_intrusive_containers"></a><h5>
-<a name="id5038660"></a>
-          <a href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases.optimize_the_tsss_maps_using_intrusive_containers">Optimize
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.optimize_the_tsss_maps_using_intrusive_containers"></a><h6>
+<a name="id3237150"></a>
+          <a class="link" href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases.optimize_the_tsss_maps_using_intrusive_containers">Optimize
           the TSSS maps using intrusive containers</a>
-        </h5>
-<a name="toward_boost_interthreads.appendices.todo.for_later_releases.generalize_both_specific_pointers_in_a_template_class_basic_thread_specific_ptr"></a><h5>
-<a name="id5038683"></a>
-          <a href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases.generalize_both_specific_pointers_in_a_template_class_basic_thread_specific_ptr">Generalize
+        </h6>
+<a name="toward_boost_interthreads.appendices.todo.for_later_releases.generalize_both_specific_pointers_in_a_template_class_basic_thread_specific_ptr"></a><h6>
+<a name="id3237172"></a>
+          <a class="link" href="todo.html#toward_boost_interthreads.appendices.todo.for_later_releases.generalize_both_specific_pointers_in_a_template_class_basic_thread_specific_ptr">Generalize
           both specific pointers in a template class basic_thread_specific_ptr</a>
-        </h5>
+        </h6>
 <p>
           <span class="bold"><strong>Domain Features</strong></span>
         </p>
@@ -138,25 +133,25 @@
 <dl>
 <dt><span class="term">ownership: exclusive/shared</span></dt>
 <dd><p>
-              Specifies if the pointer is exclusive to the thread or shared with
-              other threads.
-            </p></dd>
+                Specifies if the pointer is exclusive to the thread or shared with
+                other threads.
+              </p></dd>
 <dt><span class="term">key range: fixed/variable/mixed </span></dt>
 <dd><p>
-              Specifies how the key range is defined. fixed has an integer range
-              0..n, variable takes as key the address of the specific_ptr and mixed
-              use a variant of fixed or variable key.
-            </p></dd>
+                Specifies how the key range is defined. fixed has an integer range
+                0..n, variable takes as key the address of the specific_ptr and mixed
+                use a variant of fixed or variable key.
+              </p></dd>
 <dt><span class="term">key creation: eager/lazy</span></dt>
 <dd><p>
-              Specifies how the key is created, eager at construction time, lazy
-              when needed.
-            </p></dd>
+                Specifies how the key is created, eager at construction time, lazy
+                when needed.
+              </p></dd>
 <dt><span class="term">context setting: eager/lazy</span></dt>
 <dd><p>
-              Specifies how the pointer is set, eager at thread initialization time,
-              lazy when needed.
-            </p></dd>
+                Specifies how the pointer is set, eager at thread initialization
+                time, lazy when needed.
+              </p></dd>
 </dl>
 </div>
 <p>
@@ -164,16 +159,14 @@
           is exclusive, has a variable key range and so the key is initialized at
           construction time and explicit context setting by user on the current thread.
         </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">basic_thread_specific_ptr</span><span class="special"><</span><span class="identifier">exclusive</span><span class="special">,</span> <span class="identifier">variable_key_range</span><span class="special"><>,</span> <span class="identifier">eager_context_setting</span><span class="special">></span> <span class="identifier">thread_specific_ptr</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">basic_thread_specific_ptr</span><span class="special"><</span><span class="identifier">exclusive</span><span class="special">,</span> <span class="identifier">variable_key_range</span><span class="special"><>,</span> <span class="identifier">eager_context_setting</span><span class="special">></span> <span class="identifier">thread_specific_ptr</span><span class="special">;</span>
 </pre>
 <p>
           The current <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span></code>
           is shared, has a variable key range and so the key is initialized at construction
           time and explicit context setting by user on the current thread.
         </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">basic_thread_specific_ptr</span><span class="special"><</span><span class="identifier">exclusive</span><span class="special">,</span> <span class="identifier">variable_key_range</span><span class="special"><>,</span> <span class="identifier">eager_context_setting</span><span class="special">></span> <span class="identifier">thread_specific_ptr</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">basic_thread_specific_ptr</span><span class="special"><</span><span class="identifier">exclusive</span><span class="special">,</span> <span class="identifier">variable_key_range</span><span class="special"><>,</span> <span class="identifier">eager_context_setting</span><span class="special">></span> <span class="identifier">thread_specific_ptr</span><span class="special">;</span>
 </pre>
 <p>
           <span class="bold"><strong>Design rationale</strong></span>
@@ -214,14 +207,12 @@
           starts this is a no issue. The second is safe but has as consequence that
           every access include a check. In addition the type must be default constructible.
         </p>
-<pre class="programlisting">
-<span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">,</span> <span class="identifier">lazy_setting</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">,</span> <span class="identifier">lazy_setting</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
 </pre>
 <p>
           The pointer will be initilaized when needed as if we had do
         </p>
-<pre class="programlisting">
-<span class="keyword">if</span> <span class="special">(</span><span class="identifier">ptr</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="special">{</span>
+<pre class="programlisting"><span class="keyword">if</span> <span class="special">(</span><span class="identifier">ptr</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="special">{</span>
     <span class="identifier">ptr</span><span class="special">.</span><span class="identifier">reset</span><span class="special">(</span> <span class="keyword">new</span> <span class="identifier">myclass</span><span class="special">()</span> <span class="special">);</span>
 <span class="special">}</span>
 </pre>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/examples.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/examples.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/examples.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,16 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <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.InterThreads">
-<link rel="up" href="../index.html" title="Toward Boost.InterThreads">
-<link rel="prev" href="reference/thread_group_once_hpp.html" title="
-      Header <boost/interthreads/thread_group_once.hpp>">
-<link rel="next" href="examples/thread_safe_deferred_traces.html" title="Thread
-      safe deferred traces">
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Toward Boost.InterThreads 0.1.3">
+<link rel="up" href="../index.html" title="Toward Boost.InterThreads 0.1.3">
+<link rel="prev" href="reference.html" title="Reference">
+<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>
@@ -23,24 +20,321 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="reference/thread_group_once_hpp.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="examples/thread_safe_deferred_traces.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="toward_boost_interthreads.examples"></a>Examples
+<a name="toward_boost_interthreads.examples"></a><a class="link" href="examples.html" title="Examples">Examples</a>
 </h2></div></div></div>
-<div class="toc"><dl><dt><span class="section"><a href="examples/thread_safe_deferred_traces.html">Thread
+<div class="toc"><dl><dt><span class="section"><a href="examples.html#toward_boost_interthreads.examples.thread_safe_deferred_traces">Thread
       safe deferred traces</a></span></dt></dl></div>
 <p>
       This section do includes complete examples using the library.
     </p>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.examples.thread_safe_deferred_traces"></a><a class="link" href="examples.html#toward_boost_interthreads.examples.thread_safe_deferred_traces" title="Thread safe deferred traces">Thread
+      safe deferred traces</a>
+</h3></div></div></div>
+<p>
+        When executing on a multi thread environment, the output lines on std::cout
+        could interleave. We can synchronize these outputs with a global mutex
+      </p>
+<pre class="programlisting"><span class="special">{</span>
+   <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">></span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">global_cout_mutex</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="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>
+        This mutex could be the bottleneck of the system. Only one mutex resource
+        for all the user threads.
+      </p>
+<pre class="programlisting">U        U
+             /
+            /
+    U ----- R ----- U
+            |
+            |
+            U
+</pre>
+<p>
+        Another approach could be using a queue of output stream buffers for each
+        thread. Each buffer is timestamped with the creation date and there is a
+        concentrator that takes one by one the elements ordered by their timestamp.
+        Only the current thread can push on this queue because it is specific to
+        the thread. There is a single thread, the concentrator, that pops from these
+        queue. In this context we can ensure thread safety without locking as far
+        as the queue has at least two messages.
+      </p>
+<pre class="programlisting">U ----- R ------+
+                     \
+    U ----- R ------\
+                     \
+    U ----- R -------- C
+                     / /
+    U ----- R ------/ /
+                     /
+    U ----- R ------+
+</pre>
+<p>
+        This can be encapsulated in an async_ostream class
+      </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">async_ostream</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">stream</span><span class="special"><</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">></span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="keyword">char</span>                    <span class="identifier">char_type</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">sink_tag</span>     <span class="identifier">category</span><span class="special">;</span>
+
+    <span class="identifier">async_ostream</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">flush</span><span class="special">();</span>
+<span class="special">};</span>
+
+<span class="keyword">extern</span> <span class="identifier">async_ostream</span> <span class="identifier">cout_</span><span class="special">;</span>
+</pre>
+<p>
+        With this interface the user can use cout_ as it used std::cout.
+      </p>
+<pre class="programlisting"><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>
+</pre>
+<p>
+        All the magic is in the <code class="computeroutput"><span class="keyword">template</span> <span class="keyword">class</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">stream</span><span class="special"><></span></code>. The parameter must be a model of
+        a sink (See Boost.Iostreams). Here it is.
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">detail</span> <span class="special">{</span>
+    <span class="keyword">struct</span> <span class="identifier">async_ostream_sink</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">char</span>                            <span class="identifier">char_type</span><span class="special">;</span>
+        <span class="keyword">typedef</span>  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">sink_tag</span>     <span class="identifier">category</span><span class="special">;</span>
+        <span class="identifier">async_ostream_sink</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">);</span>
+        <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">);</span>
+        <span class="keyword">void</span> <span class="identifier">flush</span><span class="special">();</span>
+    <span class="keyword">private</span><span class="special">:</span>
+        <span class="keyword">friend</span> <span class="keyword">class</span> <span class="identifier">async_ostream_concentrator</span><span class="special">;</span>
+        <span class="keyword">friend</span> <span class="keyword">class</span> <span class="identifier">async_ostream</span><span class="special">;</span>
+        <span class="keyword">struct</span> <span class="identifier">impl</span><span class="special">;</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">impl</span><span class="special">></span> <span class="identifier">impl_</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<p>
+        This class declares the just minimum in order to model a sink. In addition,
+        in order to mask the implementation, the Pimpl idiom is used. The implementation
+        of these functions is straigtforward:
+      </p>
+<pre class="programlisting"><span class="identifier">async_ostream</span><span class="special">::</span><span class="identifier">async_ostream</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">)</span>
+    <span class="special">:</span> <span class="identifier">base_type</span><span class="special">(</span><span class="identifier">os</span><span class="special">)</span> <span class="special">{}</span>
+
+<span class="keyword">void</span> <span class="identifier">async_ostream</span><span class="special">::</span><span class="identifier">flush</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">this</span><span class="special">-></span><span class="identifier">base_type</span><span class="special">::</span><span class="identifier">flush</span><span class="special">();</span>
+    <span class="identifier">async_ostream</span><span class="special">&</span> <span class="identifier">d</span> <span class="special">=</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span>
+    <span class="identifier">d</span><span class="special">-></span><span class="identifier">flush</span><span class="special">();</span>
+<span class="special">}</span>
+
+<span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">)</span>
+    <span class="special">:</span> <span class="identifier">impl_</span><span class="special">(</span><span class="keyword">new</span> <span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">(</span><span class="identifier">os</span><span class="special">))</span> <span class="special">{}</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">impl_</span><span class="special">-></span><span class="identifier">write</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span><span class="identifier">n</span><span class="special">);</span>
+<span class="special">}</span>
+
+<span class="keyword">void</span> <span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">flush</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">impl_</span><span class="special">-></span><span class="identifier">flush</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Let me continue with the handle of the Pimpl pattern:
+      </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span> <span class="special">{</span>
+    <span class="identifier">impl</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">);</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os_</span><span class="special">;</span>
+    <span class="identifier">tsss_type</span> <span class="identifier">tsss_</span><span class="special">;</span>
+    <span class="identifier">priority_queue_type</span> <span class="identifier">queue_</span><span class="special">;</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">thread_</span><span class="special">;</span>
+
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">);</span>
+
+    <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">terminate</span><span class="special">(</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">async_ostream_thread_ctx</span><span class="special">></span> <span class="identifier">that</span><span class="special">);</span>
+    <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">loop</span><span class="special">(</span><span class="identifier">impl</span><span class="special">*</span> <span class="identifier">that</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<p>
+        Of course we need to store a reference to the final ostream.
+      </p>
+<p>
+        The <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span>
+        <span class="identifier">tsss_</span></code> is used to encapsulate the
+        logic specific to each thread.
+      </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">async_ostream_thread_ctx</span><span class="special">></span> <span class="identifier">tsss_type</span><span class="special">;</span>
+</pre>
+<p>
+        A priority queue <code class="computeroutput"><span class="identifier">queue_</span></code> will
+        be used by the concentrator thread to order the stringstreams by date.
+      </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">detail</span><span class="special">::</span><span class="identifier">timestamped</span> <span class="special">{</span>
+    <span class="identifier">system_time</span> <span class="identifier">date_</span><span class="special">;</span>
+    <span class="keyword">unsigned</span> <span class="identifier">seq_</span><span class="special">;</span>
+    <span class="identifier">T</span> <span class="identifier">value_</span><span class="special">;</span>
+    <span class="keyword">void</span> <span class="identifier">reset_date</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">seq</span><span class="special">)</span> <span class="special">{</span>
+        <span class="identifier">date_</span> <span class="special">=</span> <span class="identifier">system_time</span><span class="special">();</span>
+        <span class="identifier">seq_</span> <span class="special">=</span> <span class="identifier">seq</span><span class="special">;</span>
+    <span class="special">}</span>
+    <span class="keyword">struct</span> <span class="identifier">ptr_comparator_gt</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">timestamped</span><span class="special">*</span> <span class="identifier">value_type</span><span class="special">;</span>
+        <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&</span><span class="identifier">lhs</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&</span><span class="identifier">rhs</span><span class="special">)</span> <span class="special">{</span>
+            <span class="keyword">return</span> <span class="special">(</span><span class="identifier">lhs</span><span class="special">-></span><span class="identifier">date_</span> <span class="special">></span> <span class="identifier">rhs</span><span class="special">-></span><span class="identifier">date_</span><span class="special">)</span> <span class="special">?</span> <span class="keyword">true</span> <span class="special">:</span>
+                    <span class="special">(</span><span class="identifier">lhs</span><span class="special">-></span><span class="identifier">date_</span> <span class="special">==</span> <span class="identifier">rhs</span><span class="special">-></span><span class="identifier">date_</span><span class="special">)</span> <span class="special">&&</span> <span class="special">(</span><span class="identifier">lhs</span><span class="special">-></span><span class="identifier">seq_</span> <span class="special">></span> <span class="identifier">rhs</span><span class="special">-></span><span class="identifier">seq_</span><span class="special">)?</span> <span class="keyword">true</span><span class="special">:</span><span class="keyword">false</span><span class="special">;</span>
+        <span class="special">}</span>
+    <span class="special">};</span>
+<span class="special">};</span>
+
+<span class="keyword">typedef</span> <span class="identifier">timestamped</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">stringstream</span><span class="special">></span> <span class="identifier">element_type</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">priority_queue</span><span class="special"><</span><span class="identifier">queue_type</span><span class="special">*,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">deque</span><span class="special"><</span><span class="identifier">element_type</span><span class="special">*>,</span> <span class="identifier">element_type</span><span class="special">::</span><span class="identifier">ptr_comparator_gt</span><span class="special">></span> <span class="identifier">priority_queue_type</span><span class="special">;</span>
+</pre>
+<p>
+        In addition to the timestamp <code class="computeroutput"><span class="identifier">date_</span></code>
+        we need a sequence number to order the stringstreams pushed without enough
+        time granularity, e.g. on the same microsecond.
+      </p>
+<p>
+        To finish the field declaration there is the concentrator thread implemented
+        by the loop function.
+      </p>
+<pre class="programlisting"><span class="special">,</span> <span class="identifier">thread_</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="identifier">loop</span><span class="special">,</span> <span class="keyword">this</span><span class="special">))</span>
+</pre>
+<p>
+        Comming back to the sink implementation,
+      </p>
+<pre class="programlisting"><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">::</span><span class="identifier">impl</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">)</span>
+<span class="special">:</span> <span class="identifier">os_</span><span class="special">(</span><span class="identifier">os</span><span class="special">)</span>
+<span class="special">,</span> <span class="identifier">tsss_</span><span class="special">(</span><span class="identifier">terminate</span><span class="special">)</span>
+<span class="special">,</span> <span class="identifier">thread_</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="identifier">loop</span><span class="special">,</span> <span class="keyword">this</span><span class="special">))</span>
+<span class="special">{}</span>
+</pre>
+<p>
+        The terminate cleanup function is used to ensure that the queue is empty
+        before the thread finishes. To avoid optimizations a non const call inc is
+        done while waiting the queue empties.
+      </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">(</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">async_ostream_thread_ctx</span><span class="special">></span> <span class="identifier">that</span><span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">while</span> <span class="special">(!</span><span class="identifier">that</span><span class="special">-></span><span class="identifier">empty</span><span class="special">())</span> <span class="special">{</span>
+        <span class="identifier">that</span><span class="special">-></span><span class="identifier">inc</span><span class="special">();</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+        The central sink function is write. Here instead to lock a mutex the function
+        forwards to the thread specific shared pointer. We will see below how <code class="computeroutput"><span class="identifier">async_ostream_thread_ctx</span></code> handles this call.
+      </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">tsss_</span><span class="special">-></span><span class="identifier">write</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">n</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+        It is time to analyze the thread specific context before seeing how the concentrator
+        is implemented.
+      </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">async_ostream_thread_ctx</span> <span class="special">{</span>
+    <span class="identifier">async_ostream_thread_ctx</span><span class="special">();</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">flush</span><span class="special">();</span>
+    <span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">get</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">{</span><span class="keyword">return</span> <span class="identifier">queue_</span><span class="special">.</span><span class="identifier">empty</span><span class="special">();}</span>
+    <span class="keyword">void</span> <span class="identifier">inc</span><span class="special">()</span> <span class="special">{++</span><span class="identifier">inc_</span><span class="special">;}</span>
+<span class="keyword">private</span><span class="special">:</span>
+    <span class="keyword">unsigned</span> <span class="identifier">seq_</span><span class="special">;</span>
+    <span class="identifier">element_type</span> <span class="special">*</span><span class="identifier">current_</span><span class="special">;</span>
+    <span class="identifier">queue_type</span> <span class="identifier">queue_</span><span class="special">;</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span> <span class="identifier">mutex_</span><span class="special">;</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">stringstream</span><span class="special">&</span> <span class="identifier">buffer</span><span class="special">()</span> <span class="special">{</span><span class="keyword">return</span> <span class="identifier">current_</span><span class="special">-></span><span class="identifier">value_</span><span class="special">;}</span>
+<span class="special">};</span>
+</pre>
+<p>
+        Each thread has a pointer to the current timestamped stringstream wich is
+        used for the current output flow, i.e. by the write function.
+      </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
+    <span class="identifier">buffer</span><span class="special">().</span><span class="identifier">write</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">n</span><span class="special">);</span>
+    <span class="keyword">return</span> <span class="identifier">n</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Once the user does a flush, the current element is pushed on the queue. The
+        <code class="computeroutput"><span class="identifier">sec_</span></code> integer is used as monotonic
+        sequence in conjuntion with the timestamp.
+      </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">flush</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">current_</span><span class="special">-></span><span class="identifier">reset_date</span><span class="special">(</span><span class="identifier">seq_</span><span class="special">);</span>
+    <span class="special">++</span><span class="identifier">seq_</span><span class="special">;</span>
+    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">size</span><span class="special">()></span><span class="number">2</span><span class="special">)</span> <span class="special">{</span>
+        <span class="identifier">queue_</span><span class="special">.</span><span class="identifier">push</span><span class="special">(</span><span class="identifier">current_</span><span class="special">);</span>
+    <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">></span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">mutex_</span><span class="special">);</span>
+        <span class="identifier">queue_</span><span class="special">.</span><span class="identifier">push</span><span class="special">(</span><span class="identifier">current_</span><span class="special">);</span>
+    <span class="special">}</span>
+    <span class="identifier">current_</span> <span class="special">=</span> <span class="keyword">new</span> <span class="identifier">element_type</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+<p>
+        As stated in the introduction, we don't need to lock the mutex if the number
+        of elements in the queue is enough.
+      </p>
+<p>
+        These queue elements will be read by the concentrator using the get function.
+      </p>
+<pre class="programlisting"><span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">size</span><span class="special">()></span><span class="number">1</span><span class="special">)</span> <span class="special">{</span>
+        <span class="keyword">return</span> <span class="identifier">get_i</span><span class="special">();</span>
+    <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">></span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">mutex_</span><span class="special">);</span>
+        <span class="keyword">return</span> <span class="identifier">get_i</span><span class="special">();</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+
+<span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">get_i</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">empty</span><span class="special">())</span> <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+    <span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">e</span><span class="special">=</span> <span class="identifier">queue_</span><span class="special">.</span><span class="identifier">front</span><span class="special">();</span>
+    <span class="identifier">queue_</span><span class="special">.</span><span class="identifier">pop</span><span class="special">();</span>
+    <span class="keyword">return</span>  <span class="identifier">e</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        The concentrator loop looks like:
+      </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">async_ostream_sink_impl</span><span class="special">::</span><span class="identifier">loop</span><span class="special">(</span><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">*</span> <span class="identifier">that</span><span class="special">)</span> <span class="special">{</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os_</span> <span class="special">=</span> <span class="identifier">that</span><span class="special">-></span><span class="identifier">os_</span><span class="special">;</span>
+    <span class="keyword">for</span><span class="special">(;;)</span> <span class="special">{</span>
+        <span class="comment">// sleeps a little bit
+</span>        <span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">sleep</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">milliseconds</span><span class="special">(</span><span class="number">1</span><span class="special">));</span>
+        <span class="special">{</span> <span class="comment">// scope needed don't remove
+</span>            <span class="comment">// lock the map access
+</span>            <span class="identifier">tsss_type</span><span class="special">::</span><span class="identifier">lock_type</span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">that</span><span class="special">-></span><span class="identifier">tsss_</span><span class="special">.</span><span class="identifier">get_mutex</span><span class="special">());</span>
+            <span class="keyword">const</span> <span class="identifier">tsss_type</span><span class="special">::</span><span class="identifier">map_type</span><span class="special">&</span> <span class="identifier">tmap</span><span class="special">(</span><span class="identifier">that</span><span class="special">-></span><span class="identifier">tsss_</span><span class="special">.</span><span class="identifier">get_map</span><span class="special">(</span><span class="identifier">lock</span><span class="special">));</span>
+            <span class="keyword">for</span> <span class="special">(</span><span class="identifier">tsss_type</span><span class="special">::</span><span class="identifier">map_type</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">it</span> <span class="special">=</span> <span class="identifier">tmap</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span> <span class="identifier">it</span> <span class="special">!=</span> <span class="identifier">tmap</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span> <span class="special">++</span><span class="identifier">it</span><span class="special">)</span> <span class="special">{</span>
+                <span class="comment">// takes the first element of each thread queue (if it exists) and push it on the ordered queue.
+</span>                <span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">e</span><span class="special">=</span> <span class="identifier">it</span><span class="special">-></span><span class="identifier">second</span><span class="special">-></span><span class="identifier">get</span><span class="special">();</span>
+                <span class="keyword">if</span> <span class="special">(</span><span class="identifier">e</span> <span class="special">!=</span> <span class="number">0</span><span class="special">)</span> <span class="identifier">that</span><span class="special">-></span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">push</span><span class="special">(</span><span class="identifier">e</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">}</span>
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">that</span><span class="special">-></span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">empty</span><span class="special">())</span> <span class="special">{</span> <span class="comment">//when the queue is empty sleeps a little more
+</span>            <span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">sleep</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">milliseconds</span><span class="special">(</span><span class="number">10</span><span class="special">));</span>
+        <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+            <span class="comment">// takes the fist element of the ordered queue, write them on the output stream and delete it.
+</span>            <span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">e</span> <span class="special">=</span> <span class="identifier">that</span><span class="special">-></span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">top</span><span class="special">();</span>
+            <span class="identifier">that</span><span class="special">-></span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">pop</span><span class="special">();</span>
+            <span class="identifier">os_</span> <span class="special"><<</span> <span class="string">"["</span><span class="special"><<</span> <span class="identifier">e</span><span class="special">-></span><span class="identifier">date_</span> <span class="special"><<</span><span class="string">"-"</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">-></span><span class="identifier">seq_</span> <span class="special"><<</span> <span class="string">"] "</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">-></span><span class="identifier">value_</span><span class="special">.</span><span class="identifier">str</span><span class="special">();</span>
+            <span class="keyword">delete</span> <span class="identifier">e</span><span class="special">;</span>
+        <span class="special">}</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+</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>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009,2011 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>
@@ -48,7 +342,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="reference/thread_group_once_hpp.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="examples/thread_safe_deferred_traces.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/examples/thread_safe_deferred_traces.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/examples/thread_safe_deferred_traces.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/examples/thread_safe_deferred_traces.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,12 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Thread
-      safe deferred traces</title>
+<title>Thread safe deferred traces</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.InterThreads">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
 <link rel="up" href="../examples.html" title="Examples">
 <link rel="prev" href="../examples.html" title="Examples">
 <link rel="next" href="../appendices.html" title="Appendices">
@@ -24,18 +22,16 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../examples.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../appendices.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.examples.thread_safe_deferred_traces"></a><a href="thread_safe_deferred_traces.html" title="Thread
-      safe deferred traces">Thread
+<a name="toward_boost_interthreads.examples.thread_safe_deferred_traces"></a><a class="link" href="thread_safe_deferred_traces.html" title="Thread safe deferred traces">Thread
       safe deferred traces</a>
 </h3></div></div></div>
 <p>
         When executing on a multi thread environment, the output lines on std::cout
         could interleave. We can synchronize these outputs with a global mutex
       </p>
-<pre class="programlisting">
-<span class="special">{</span>
+<pre class="programlisting"><span class="special">{</span>
    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">></span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">global_cout_mutex</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="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>
@@ -74,8 +70,7 @@
 <p>
         This can be encapsulated in an async_ostream class
       </p>
-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">async_ostream</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">stream</span><span class="special"><</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">></span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">async_ostream</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">stream</span><span class="special"><</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">></span> <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
     <span class="keyword">typedef</span> <span class="keyword">char</span>                    <span class="identifier">char_type</span><span class="special">;</span>
     <span class="keyword">typedef</span> <span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">sink_tag</span>     <span class="identifier">category</span><span class="special">;</span>
@@ -89,15 +84,13 @@
 <p>
         With this interface the user can use cout_ as it used std::cout.
       </p>
-<pre class="programlisting">
-<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>
+<pre class="programlisting"><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>
 </pre>
 <p>
         All the magic is in the <code class="computeroutput"><span class="keyword">template</span> <span class="keyword">class</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">stream</span><span class="special"><></span></code>. The parameter must be a model of
         a sink (See Boost.Iostreams). Here it is.
       </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">detail</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">detail</span> <span class="special">{</span>
     <span class="keyword">struct</span> <span class="identifier">async_ostream_sink</span> <span class="special">{</span>
         <span class="keyword">typedef</span> <span class="keyword">char</span>                            <span class="identifier">char_type</span><span class="special">;</span>
         <span class="keyword">typedef</span>  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">sink_tag</span>     <span class="identifier">category</span><span class="special">;</span>
@@ -117,8 +110,7 @@
         in order to mask the implementation, the Pimpl idiom is used. The implementation
         of these functions is straigtforward:
       </p>
-<pre class="programlisting">
-<span class="identifier">async_ostream</span><span class="special">::</span><span class="identifier">async_ostream</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">async_ostream</span><span class="special">::</span><span class="identifier">async_ostream</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">)</span>
     <span class="special">:</span> <span class="identifier">base_type</span><span class="special">(</span><span class="identifier">os</span><span class="special">)</span> <span class="special">{}</span>
 
 <span class="keyword">void</span> <span class="identifier">async_ostream</span><span class="special">::</span><span class="identifier">flush</span><span class="special">()</span> <span class="special">{</span>
@@ -141,8 +133,7 @@
 <p>
         Let me continue with the handle of the Pimpl pattern:
       </p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span> <span class="special">{</span>
     <span class="identifier">impl</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">);</span>
     <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os_</span><span class="special">;</span>
     <span class="identifier">tsss_type</span> <span class="identifier">tsss_</span><span class="special">;</span>
@@ -163,15 +154,13 @@
         <span class="identifier">tsss_</span></code> is used to encapsulate the
         logic specific to each thread.
       </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">async_ostream_thread_ctx</span><span class="special">></span> <span class="identifier">tsss_type</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">async_ostream_thread_ctx</span><span class="special">></span> <span class="identifier">tsss_type</span><span class="special">;</span>
 </pre>
 <p>
         A priority queue <code class="computeroutput"><span class="identifier">queue_</span></code> will
         be used by the concentrator thread to order the stringstreams by date.
       </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>
+<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">detail</span><span class="special">::</span><span class="identifier">timestamped</span> <span class="special">{</span>
     <span class="identifier">system_time</span> <span class="identifier">date_</span><span class="special">;</span>
     <span class="keyword">unsigned</span> <span class="identifier">seq_</span><span class="special">;</span>
@@ -201,14 +190,12 @@
         To finish the field declaration there is the concentrator thread implemented
         by the loop function.
       </p>
-<pre class="programlisting">
-<span class="special">,</span> <span class="identifier">thread_</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="identifier">loop</span><span class="special">,</span> <span class="keyword">this</span><span class="special">))</span>
+<pre class="programlisting"><span class="special">,</span> <span class="identifier">thread_</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="identifier">loop</span><span class="special">,</span> <span class="keyword">this</span><span class="special">))</span>
 </pre>
 <p>
         Comming back to the sink implementation,
       </p>
-<pre class="programlisting">
-<span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">::</span><span class="identifier">impl</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">::</span><span class="identifier">impl</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">)</span>
 <span class="special">:</span> <span class="identifier">os_</span><span class="special">(</span><span class="identifier">os</span><span class="special">)</span>
 <span class="special">,</span> <span class="identifier">tsss_</span><span class="special">(</span><span class="identifier">terminate</span><span class="special">)</span>
 <span class="special">,</span> <span class="identifier">thread_</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="identifier">loop</span><span class="special">,</span> <span class="keyword">this</span><span class="special">))</span>
@@ -219,8 +206,7 @@
         before the thread finishes. To avoid optimizations a non const call inc is
         done while waiting the queue empties.
       </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">(</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">async_ostream_thread_ctx</span><span class="special">></span> <span class="identifier">that</span><span class="special">)</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">(</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">async_ostream_thread_ctx</span><span class="special">></span> <span class="identifier">that</span><span class="special">)</span> <span class="special">{</span>
     <span class="keyword">while</span> <span class="special">(!</span><span class="identifier">that</span><span class="special">-></span><span class="identifier">empty</span><span class="special">())</span> <span class="special">{</span>
         <span class="identifier">that</span><span class="special">-></span><span class="identifier">inc</span><span class="special">();</span>
     <span class="special">}</span>
@@ -230,8 +216,7 @@
         The central sink function is write. Here instead to lock a mutex the function
         forwards to the thread specific shared pointer. We will see below how <code class="computeroutput"><span class="identifier">async_ostream_thread_ctx</span></code> handles this call.
       </p>
-<pre class="programlisting">
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
     <span class="keyword">return</span> <span class="identifier">tsss_</span><span class="special">-></span><span class="identifier">write</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">n</span><span class="special">);</span>
 <span class="special">}</span>
 </pre>
@@ -239,8 +224,7 @@
         It is time to analyze the thread specific context before seeing how the concentrator
         is implemented.
       </p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">async_ostream_thread_ctx</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">async_ostream_thread_ctx</span> <span class="special">{</span>
     <span class="identifier">async_ostream_thread_ctx</span><span class="special">();</span>
     <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">);</span>
     <span class="keyword">void</span> <span class="identifier">flush</span><span class="special">();</span>
@@ -259,8 +243,7 @@
         Each thread has a pointer to the current timestamped stringstream wich is
         used for the current output flow, i.e. by the write function.
       </p>
-<pre class="programlisting">
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
     <span class="identifier">buffer</span><span class="special">().</span><span class="identifier">write</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">n</span><span class="special">);</span>
     <span class="keyword">return</span> <span class="identifier">n</span><span class="special">;</span>
 <span class="special">}</span>
@@ -270,8 +253,7 @@
         <code class="computeroutput"><span class="identifier">sec_</span></code> integer is used as monotonic
         sequence in conjuntion with the timestamp.
       </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">flush</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">flush</span><span class="special">()</span> <span class="special">{</span>
     <span class="identifier">current_</span><span class="special">-></span><span class="identifier">reset_date</span><span class="special">(</span><span class="identifier">seq_</span><span class="special">);</span>
     <span class="special">++</span><span class="identifier">seq_</span><span class="special">;</span>
     <span class="keyword">if</span> <span class="special">(</span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">size</span><span class="special">()></span><span class="number">2</span><span class="special">)</span> <span class="special">{</span>
@@ -290,8 +272,7 @@
 <p>
         These queue elements will be read by the concentrator using the get function.
       </p>
-<pre class="programlisting">
-<span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="special">{</span>
     <span class="keyword">if</span> <span class="special">(</span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">size</span><span class="special">()></span><span class="number">1</span><span class="special">)</span> <span class="special">{</span>
         <span class="keyword">return</span> <span class="identifier">get_i</span><span class="special">();</span>
     <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
@@ -310,8 +291,7 @@
 <p>
         The concentrator loop looks like:
       </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">async_ostream_sink_impl</span><span class="special">::</span><span class="identifier">loop</span><span class="special">(</span><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">*</span> <span class="identifier">that</span><span class="special">)</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">async_ostream_sink_impl</span><span class="special">::</span><span class="identifier">loop</span><span class="special">(</span><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">*</span> <span class="identifier">that</span><span class="special">)</span> <span class="special">{</span>
     <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os_</span> <span class="special">=</span> <span class="identifier">that</span><span class="special">-></span><span class="identifier">os_</span><span class="special">;</span>
     <span class="keyword">for</span><span class="special">(;;)</span> <span class="special">{</span>
         <span class="comment">// sleeps a little bit
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/overview.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/overview.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/overview.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,14 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<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.InterThreads">
-<link rel="up" href="../index.html" title="Toward Boost.InterThreads">
-<link rel="prev" href="../index.html" title="Toward Boost.InterThreads">
-<link rel="next" href="overview/motivation.html" title=" Motivation">
+<title>Overview</title>
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Toward Boost.InterThreads 0.1.3">
+<link rel="up" href="../index.html" title="Toward Boost.InterThreads 0.1.3">
+<link rel="prev" href="../index.html" title="Toward Boost.InterThreads 0.1.3">
+<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>
@@ -21,129 +20,61 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="overview/motivation.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="users_guide.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="toward_boost_interthreads.overview"></a> Overview
+<a name="toward_boost_interthreads.overview"></a><a class="link" href="overview.html" title="Overview">Overview</a>
 </h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"> Motivation</span></dt>
+<dt><span class="section">Motivation</span></dt>
 <dd><dl>
-<dt><span class="section">Decorators</span></dt>
-<dt><span class="section"><a href="overview/motivation.html#toward_boost_interthreads.overview.motivation.sharing_thread_local_storage">Sharing
+<dt><span class="section">Decorators</span></dt>
+<dt><span class="section"><a href="overview.html#toward_boost_interthreads.overview.motivation.sharing_thread_local_storage">Sharing
         Thread Local Storage</a></span></dt>
-<dt><span class="section"><a href="overview/motivation.html#toward_boost_interthreads.overview.motivation.keep_alive_motivation">
-        Keep Alive</a></span></dt>
-<dt><span class="section"><a href="overview/motivation.html#toward_boost_interthreads.overview.motivation.thread_tuple">Thread
+<dt><span class="section"><a href="overview.html#toward_boost_interthreads.overview.motivation.keep_alive_motivation">Keep
+        Alive</a></span></dt>
+<dt><span class="section"><a href="overview.html#toward_boost_interthreads.overview.motivation.thread_tuple">Thread
         Tuple</a></span></dt>
 </dl></dd>
+<dt><span class="section">Description</span></dt>
 </dl></div>
-<a name="toward_boost_interthreads.overview.description"></a><h3>
-<a name="id4946103"></a>
-      Description
-    </h3>
-<p>
-      <span class="bold"><strong>Boost.InterThreads</strong></span> extends Boost.Threads adding some features:
-    </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
-        A thread_decoration class allowing to define setup/cleanup functions which
-        will be called only once by thread (if the thread function is decorated with
-        thread_decorator): setup before the thread function and cleanup at thread
-        exit. It is used together with asynchronous_executor_decorator
-      </li>
-<li>
-        A thread_decorator/thread_decorate class/function which decorate a thread
-        function in order to call the setup and the cleanup of all the thread_decorations.
-      </li>
-<li>
-        A thread specific shared pointer which is an extension of the thread_specific_ptr
-        providing access to this thread specific context from other threads. As it
-        is shared the stored pointer is a shared_ptr instead of a raw one.
-      </li>
-<li>
-        A thread keep alive mechanism: this mechanism allows to detect threads that
-        do not prove that they are alive by calling to the keep_alive_point regularly.
-        When a thread is declared dead a user provided function is called, which
-        by default will abort the program.
-      </li>
-<li>
-        A thread static array
-        <div class="itemizedlist"><ul type="circle"><li>
-            thread tuple: defines a thread groupe where the number of threads is
-            know statically and the threads are created at construction time in oposition
-            to a thread_group.
-          </li></ul></div>
-</li>
-<li>
-        A thread static array and a thread group with wait for any feature
-        <div class="itemizedlist"><ul type="circle">
-<li>
-            set_once: a synchonizer that allows to set a variable only once, notifying
-            to the variable value to whatever is waiting for that.
-          </li>
-<li>
-            thread_tuple_once: an extension of the boost::thread_tuple which allows
-            to join the completion of any thread using for that the set_once synchronizer.
-          </li>
-<li>
-            thread_group_once: an extension of the boost::thread_group which allows
-            to join the completion of any thread in the group using for that the
-            set_once synchronizer.
-          </li>
-</ul></div>
-</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/src/images/note.png"></td>
-<th align="left">Note</th>
-</tr>
-<tr><td align="left" valign="top"><p>
-        thread_decorator and thread_specific_shared_ptr are based on the original
-        implementation of threadalert written by Roland Schwarz.
-      </p></td></tr>
-</table></div>
-<a name="toward_boost_interthreads.overview.how_to_use_this_documentation"></a><h3>
-<a name="id4948728"></a>
-      <a href="overview.html#toward_boost_interthreads.overview.how_to_use_this_documentation">How
+<a name="toward_boost_interthreads.overview.how_to_use_this_documentation"></a><h4>
+<a name="id3012937"></a>
+      <a class="link" href="overview.html#toward_boost_interthreads.overview.how_to_use_this_documentation">How
       to Use This Documentation</a>
-    </h3>
+    </h4>
 <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>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+          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 class="listitem">
+          Replaceable text that you will need to supply is in <em class="replaceable"><code>italics</code></em>.
+        </li>
+<li class="listitem">
+          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 class="listitem">
+          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 class="listitem">
+          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 class="listitem">
+          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>
@@ -158,17 +89,318 @@
 <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 InterThreads
+<pre class="programlisting"><span class="comment">// Include all of InterThreads
 </span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">interthreads</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">bith</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">;</span>
 </pre>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.overview.motivation"></a><a class="link" href="overview.html#toward_boost_interthreads.overview.motivation" title="Motivation">Motivation</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Decorators</span></dt>
+<dt><span class="section"><a href="overview.html#toward_boost_interthreads.overview.motivation.sharing_thread_local_storage">Sharing
+        Thread Local Storage</a></span></dt>
+<dt><span class="section"><a href="overview.html#toward_boost_interthreads.overview.motivation.keep_alive_motivation">Keep
+        Alive</a></span></dt>
+<dt><span class="section"><a href="overview.html#toward_boost_interthreads.overview.motivation.thread_tuple">Thread
+        Tuple</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.overview.motivation.decorators"></a><a class="link" href="overview.html#toward_boost_interthreads.overview.motivation.decorators" title="Decorators">Decorators</a>
+</h4></div></div></div>
+<p>
+          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">call_once</span></code> provides a mechanism for ensuring
+          that an initialization routine is run exactly once on a programm without
+          data races or deadlocks. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">at_thread_exit</span></code>
+          allows to execute a cleanup function at thread exit.
+        </p>
+<p>
+          If we want a setup function to be executed once at the begining on the
+          threads and a cleanup at thread exit we need to do
+        </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">thread_main</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">setup</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">at_thread_exit</span><span class="special">(</span><span class="identifier">cleanup</span><span class="special">);</span>
+    <span class="comment">// do whatever
+</span>    <span class="comment">// ...
+</span><span class="special">}</span>
+<span class="comment">// ...
+</span><span class="special">{</span>
+    <span class="identifier">launch</span><span class="special">(</span><span class="identifier">thread_main</span><span class="special">);</span>
+    <span class="comment">//...
+</span><span class="special">}</span>
+</pre>
+<p>
+          Of course we can define an init function that calls setup and do the registration.
+        </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">init</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">setup</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">at_thread_exit</span><span class="special">(</span><span class="identifier">cleanup</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          Different services could require these setup/cleanup functions to be called,
+          and so each thread function should do
+        </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">thread_main</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">serv1</span><span class="special">::</span><span class="identifier">init</span><span class="special">();</span>
+    <span class="comment">// ...
+</span>    <span class="identifier">servN</span><span class="special">::</span><span class="identifier">init</span><span class="special">();</span>
+    <span class="comment">// do whatever using serv1, ..., servN.
+</span>    <span class="comment">// ...
+</span><span class="special">}</span>
+</pre>
+<p>
+          This approach is valid for services that the user can configure for specifics
+          threads, but not for services that must be installed on every thread.
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">thread_decoration</span></code> ensures
+          that a setup function is called only once by thread before the thread function
+          provided the thread is created with a decorator wrapper. This setup function
+          is usualy used to set thread specific pointers and call functions once.
+        </p>
+<p>
+          The conterpart of the setup is the cleanup. The <code class="computeroutput"><span class="identifier">thread_decoration</span></code>
+          takes an optional cleanup function which will be executed at thread exit.
+        </p>
+<pre class="programlisting"><span class="comment">// define in only the implementation file of each service
+</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">::</span><span class="identifier">decoration</span> <span class="identifier">serv1</span><span class="special">:</span><span class="identifier">decoration</span><span class="special">(</span><span class="identifier">serv1</span><span class="special">:</span><span class="identifier">setup</span><span class="special">,</span> <span class="identifier">serv1</span><span class="special">:</span><span class="identifier">cleanup</span><span class="special">);</span>
+<span class="comment">// ...
+</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">::</span><span class="identifier">decoration</span> <span class="identifier">servN</span><span class="special">:</span><span class="identifier">decoration</span><span class="special">(</span><span class="identifier">servN</span><span class="special">:</span><span class="identifier">setup</span><span class="special">,</span> <span class="identifier">servN</span><span class="special">:</span><span class="identifier">cleanup</span><span class="special">);</span>
+
+
+<span class="keyword">void</span> <span class="identifier">thread_main</span><span class="special">()</span> <span class="special">{</span>
+    <span class="comment">// do whatever using serv1, ..., servN.
+</span>    <span class="comment">// ...
+</span><span class="special">}</span>
+
+<span class="comment">// ...
+</span><span class="special">{</span>
+    <span class="identifier">boost</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">interthreads</span><span class="special">::</span><span class="identifier">make_decorator</span><span class="special">(</span><span class="identifier">thread_main</span><span class="special">));</span>
+    <span class="comment">//...
+</span><span class="special">}</span>
+</pre>
+<p>
+          We can use a basic_threader_decorator as asynchronous executor to fork
+          thread_main.
+        </p>
+<pre class="programlisting"><span class="comment">// ...
+</span><span class="special">{</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">=</span><span class="identifier">fork</span><span class="special">(</span><span class="identifier">basic_threader_decorator</span><span class="special">(),</span> <span class="identifier">thread_main</span><span class="special">);</span>
+    <span class="comment">//...
+</span><span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.overview.motivation.sharing_thread_local_storage"></a><a class="link" href="overview.html#toward_boost_interthreads.overview.motivation.sharing_thread_local_storage" title="Sharing Thread Local Storage">Sharing
+        Thread Local Storage</a>
+</h4></div></div></div>
+<p>
+          Thread local storage allows multi-threaded applications to have a separate
+          instance of a given data item for each thread. But does not provide any
+          mechanism to access this data from other threads. Although this seems to
+          defeat the whole point of thread-specific storage, it is useful when these
+          contexts need some kind of communication between them, or some central
+          global object needs to control them.
+        </p>
+<p>
+          The intent of the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span></code>
+          class is to allow two threads to establish a shared memory space, without
+          requiring the user code to pass any information. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span></code>
+          provides a portable mechanism for shared thread-local storage that works
+          on all compilers supported by <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code>
+          and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code>. Each instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span></code> represents
+          a pointer to a shared object where each thread must have a distinct value.
+        </p>
+<p>
+          Only the current thread can modify the thread specific shared pointer using
+          the non const functions reset/release functions. Each time these functions
+          are used, a synchronization must be ensured to update the mapping. The
+          other threads have only read access to the shared_ptr<T>. It is worth
+          saying that the shared object T must be thread safe.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.overview.motivation.keep_alive_motivation"></a><a class="link" href="overview.html#toward_boost_interthreads.overview.motivation.keep_alive_motivation" title="Keep Alive">Keep
+        Alive</a>
+</h4></div></div></div>
+<p>
+          On fault tolerant systems we need to be able to detect threads that could
+          stay on a loop, or simply blocked.
+        </p>
+<p>
+          One way to detect this situations is to require the thread to signal it
+          is alive by calling a check point function. Of course it should be up to
+          the user to state when this mechanism is enabled or disabled. At the begining
+          of a thread the keep alive mechanism is disabled.
+        </p>
+<p>
+          A thread will be considered dead if during a given period the number of
+          checkins is inferior to a given threshold. These two parameters can be
+          given when the keep alive mechanislm is enabled.
+        </p>
+<p>
+          The controler checks at predefined intervals if the thread is dead, and
+          in this case it will call a user specific function which by default aborts
+          the program.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.overview.motivation.thread_tuple"></a><a class="link" href="overview.html#toward_boost_interthreads.overview.motivation.thread_tuple" title="Thread Tuple">Thread
+        Tuple</a>
+</h4></div></div></div>
+<p>
+          The <code class="computeroutput"><span class="identifier">boots</span><span class="special">::</span><span class="identifier">thread_group</span></code> class allows to group dynamically
+          threads. This means that the container must be dynamic.
+        </p>
+<pre class="programlisting"><span class="special">{</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_group</span> <span class="identifier">tg</span><span class="special">;</span>
+    <span class="identifier">tg</span><span class="special">.</span><span class="identifier">create_thread</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">);</span>
+    <span class="identifier">tg</span><span class="special">.</span><span class="identifier">create_thread</span><span class="special">(</span><span class="identifier">thread2</span><span class="special">);</span>
+    <span class="identifier">tg</span><span class="special">.</span><span class="identifier">join_all</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          The <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
+          class is responsible for launching and managing a static collection of
+          threads that are related in some way. No new threads can be added to the
+          tuple once constructed. So we can write
+        </p>
+<pre class="programlisting"><span class="special">{</span>
+    <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="identifier">tt</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">,</span> <span class="identifier">thread2</span><span class="special">);</span>
+    <span class="identifier">tt</span><span class="special">.</span><span class="identifier">join_all</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          As this
+        </p>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">conc_join_all</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">,</span> <span class="identifier">thread2</span><span class="special">);</span>
+</pre>
+<p>
+          In addition the user can join the first finishing thread.
+        </p>
+<pre class="programlisting"><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">conc_join_any</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">,</span> <span class="identifier">thread2</span><span class="special">);</span>
+</pre>
+<p>
+          Evidently, thread_tuple can not be used when we need dynamic creation or
+          deletion. The <code class="computeroutput"><span class="identifier">boots</span><span class="special">::</span><span class="identifier">thread_group</span></code> class allows to group dynamically
+          threads.
+        </p>
+<pre class="programlisting"><span class="special">{</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_group</span> <span class="identifier">tg</span><span class="special">;</span>
+    <span class="identifier">tg</span><span class="special">.</span><span class="identifier">create_thread</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">);</span>
+
+    <span class="comment">// later on
+</span>    <span class="identifier">tg</span><span class="special">.</span><span class="identifier">create_thread</span><span class="special">(</span><span class="identifier">thread2</span><span class="special">);</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th3</span><span class="special">(</span><span class="identifier">thread3</span><span class="special">)</span>
+    <span class="identifier">tg</span><span class="special">.</span><span class="identifier">add_thread</span><span class="special">(</span><span class="identifier">th3</span><span class="special">);</span>
+
+    <span class="comment">// later on
+</span>    <span class="identifier">tg</span><span class="special">.</span><span class="identifier">remove_thread</span><span class="special">(</span><span class="identifier">th3</span><span class="special">);</span>
+
+    <span class="identifier">tg</span><span class="special">.</span><span class="identifier">join_all</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          Objects of type <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> are movable, so they can be stored
+          in move-aware containers, and returned from functions. This allows the
+          details of thread tuple creation to be wrapped in a function.
+        </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="identifier">make_thread_tuple</span><span class="special">(...);</span>
+
+<span class="keyword">void</span> <span class="identifier">f</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="identifier">some_thread_tuple</span><span class="special">=</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_thread_tuple</span><span class="special">(</span><span class="identifier">f1</span><span class="special">,</span> <span class="identifier">g2</span><span class="special">);</span>
+    <span class="identifier">some_thread_tuple</span><span class="special">.</span><span class="identifier">join</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.overview.description"></a><a class="link" href="overview.html#toward_boost_interthreads.overview.description" title="Description">Description</a>
+</h3></div></div></div>
+<p>
+        <span class="bold"><strong>Boost.InterThreads</strong></span> extends Boost.Threads adding some features:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+            A thread_decoration class allowing to define setup/cleanup functions
+            which will be called only once by thread (if the thread function is decorated
+            with thread_decorator): setup before the thread function and cleanup
+            at thread exit. It is used together with asynchronous_executor_decorator
+          </li>
+<li class="listitem">
+            A thread_decorator/thread_decorate class/function which decorate a thread
+            function in order to call the setup and the cleanup of all the thread_decorations.
+          </li>
+<li class="listitem">
+            A thread specific shared pointer which is an extension of the thread_specific_ptr
+            providing access to this thread specific context from other threads.
+            As it is shared the stored pointer is a shared_ptr instead of a raw one.
+          </li>
+<li class="listitem">
+            A thread keep alive mechanism: this mechanism allows to detect threads
+            that do not prove that they are alive by calling to the keep_alive_point
+            regularly. When a thread is declared dead a user provided function is
+            called, which by default will abort the program.
+          </li>
+<li class="listitem">
+<p class="simpara">
+            A thread static array
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem">
+                thread tuple: defines a thread groupe where the number of threads
+                is know statically and the threads are created at construction time
+                in oposition to a thread_group.
+              </li></ul></div>
+</li>
+<li class="listitem">
+<p class="simpara">
+            A thread static array and a thread group with wait for any feature
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="circle">
+<li class="listitem">
+                set_once: a synchonizer that allows to set a variable only once,
+                notifying to the variable value to whatever is waiting for that.
+              </li>
+<li class="listitem">
+                thread_tuple_once: an extension of the boost::thread_tuple which
+                allows to join the completion of any thread using for that the set_once
+                synchronizer.
+              </li>
+<li class="listitem">
+                thread_group_once: an extension of the boost::thread_group which
+                allows to join the completion of any thread in the group using for
+                that the set_once synchronizer.
+              </li>
+</ul></div>
+</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/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          thread_decorator and thread_specific_shared_ptr are based on the original
+          implementation of threadalert written by Roland Schwarz.
+        </p></td></tr>
+</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>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009,2011 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>
@@ -176,7 +408,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="overview/motivation.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="users_guide.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/overview/motivation.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/overview/motivation.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/overview/motivation.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,14 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title> Motivation</title>
+<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.InterThreads">
-<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">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<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>
@@ -23,22 +22,22 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../overview.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../users_guide.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.overview.motivation"></a> Motivation
+<a name="toward_boost_interthreads.overview.motivation"></a><a class="link" href="motivation.html" title="Motivation">Motivation</a>
 </h3></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Decorators</span></dt>
 <dt><span class="section"><a href="motivation.html#toward_boost_interthreads.overview.motivation.sharing_thread_local_storage">Sharing
         Thread Local Storage</a></span></dt>
-<dt><span class="section"><a href="motivation.html#toward_boost_interthreads.overview.motivation.keep_alive_motivation">
-        Keep Alive</a></span></dt>
+<dt><span class="section"><a href="motivation.html#toward_boost_interthreads.overview.motivation.keep_alive_motivation">Keep
+        Alive</a></span></dt>
 <dt><span class="section"><a href="motivation.html#toward_boost_interthreads.overview.motivation.thread_tuple">Thread
         Tuple</a></span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.overview.motivation.decorators"></a>Decorators
+<a name="toward_boost_interthreads.overview.motivation.decorators"></a><a class="link" href="motivation.html#toward_boost_interthreads.overview.motivation.decorators" title="Decorators">Decorators</a>
 </h4></div></div></div>
 <p>
           <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">call_once</span></code> provides a mechanism for ensuring
@@ -50,8 +49,7 @@
           If we want a setup function to be executed once at the begining on the
           threads and a cleanup at thread exit we need to do
         </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">thread_main</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">thread_main</span><span class="special">()</span> <span class="special">{</span>
     <span class="identifier">setup</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">at_thread_exit</span><span class="special">(</span><span class="identifier">cleanup</span><span class="special">);</span>
     <span class="comment">// do whatever
@@ -66,8 +64,7 @@
 <p>
           Of course we can define an init function that calls setup and do the registration.
         </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">init</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">init</span><span class="special">()</span> <span class="special">{</span>
     <span class="identifier">setup</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">at_thread_exit</span><span class="special">(</span><span class="identifier">cleanup</span><span class="special">);</span>
 <span class="special">}</span>
@@ -76,8 +73,7 @@
           Different services could require these setup/cleanup functions to be called,
           and so each thread function should do
         </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">thread_main</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">thread_main</span><span class="special">()</span> <span class="special">{</span>
     <span class="identifier">serv1</span><span class="special">::</span><span class="identifier">init</span><span class="special">();</span>
     <span class="comment">// ...
 </span>    <span class="identifier">servN</span><span class="special">::</span><span class="identifier">init</span><span class="special">();</span>
@@ -99,8 +95,7 @@
           The conterpart of the setup is the cleanup. The <code class="computeroutput"><span class="identifier">thread_decoration</span></code>
           takes an optional cleanup function which will be executed at thread exit.
         </p>
-<pre class="programlisting">
-<span class="comment">// define in only the implementation file of each service
+<pre class="programlisting"><span class="comment">// define in only the implementation file of each service
 </span>
 <span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">::</span><span class="identifier">decoration</span> <span class="identifier">serv1</span><span class="special">:</span><span class="identifier">decoration</span><span class="special">(</span><span class="identifier">serv1</span><span class="special">:</span><span class="identifier">setup</span><span class="special">,</span> <span class="identifier">serv1</span><span class="special">:</span><span class="identifier">cleanup</span><span class="special">);</span>
 <span class="comment">// ...
@@ -122,18 +117,16 @@
           We can use a basic_threader_decorator as asynchronous executor to fork
           thread_main.
         </p>
-<pre class="programlisting">
-<span class="comment">// ...
+<pre class="programlisting"><span class="comment">// ...
 </span><span class="special">{</span>
     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">=</span><span class="identifier">fork</span><span class="special">(</span><span class="identifier">basic_threader_decorator</span><span class="special">(),</span> <span class="identifier">thread_main</span><span class="special">);</span>
     <span class="comment">//...
 </span><span class="special">}</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.overview.motivation.sharing_thread_local_storage"></a><a href="motivation.html#toward_boost_interthreads.overview.motivation.sharing_thread_local_storage" title="Sharing
-        Thread Local Storage">Sharing
+<a name="toward_boost_interthreads.overview.motivation.sharing_thread_local_storage"></a><a class="link" href="motivation.html#toward_boost_interthreads.overview.motivation.sharing_thread_local_storage" title="Sharing Thread Local Storage">Sharing
         Thread Local Storage</a>
 </h4></div></div></div>
 <p>
@@ -161,11 +154,10 @@
           saying that the shared object T must be thread safe.
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.overview.motivation.keep_alive_motivation"></a><a href="motivation.html#toward_boost_interthreads.overview.motivation.keep_alive_motivation" title="
-        Keep Alive">
-        Keep Alive</a>
+<a name="toward_boost_interthreads.overview.motivation.keep_alive_motivation"></a><a class="link" href="motivation.html#toward_boost_interthreads.overview.motivation.keep_alive_motivation" title="Keep Alive">Keep
+        Alive</a>
 </h4></div></div></div>
 <p>
           On fault tolerant systems we need to be able to detect threads that could
@@ -188,18 +180,16 @@
           the program.
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.overview.motivation.thread_tuple"></a><a href="motivation.html#toward_boost_interthreads.overview.motivation.thread_tuple" title="Thread
-        Tuple">Thread
+<a name="toward_boost_interthreads.overview.motivation.thread_tuple"></a><a class="link" href="motivation.html#toward_boost_interthreads.overview.motivation.thread_tuple" title="Thread Tuple">Thread
         Tuple</a>
 </h4></div></div></div>
 <p>
           The <code class="computeroutput"><span class="identifier">boots</span><span class="special">::</span><span class="identifier">thread_group</span></code> class allows to group dynamically
           threads. This means that the container must be dynamic.
         </p>
-<pre class="programlisting">
-<span class="special">{</span>
+<pre class="programlisting"><span class="special">{</span>
     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_group</span> <span class="identifier">tg</span><span class="special">;</span>
     <span class="identifier">tg</span><span class="special">.</span><span class="identifier">create_thread</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">);</span>
     <span class="identifier">tg</span><span class="special">.</span><span class="identifier">create_thread</span><span class="special">(</span><span class="identifier">thread2</span><span class="special">);</span>
@@ -212,8 +202,7 @@
           threads that are related in some way. No new threads can be added to the
           tuple once constructed. So we can write
         </p>
-<pre class="programlisting">
-<span class="special">{</span>
+<pre class="programlisting"><span class="special">{</span>
     <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="identifier">tt</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">,</span> <span class="identifier">thread2</span><span class="special">);</span>
     <span class="identifier">tt</span><span class="special">.</span><span class="identifier">join_all</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">);</span>
 <span class="special">}</span>
@@ -221,22 +210,19 @@
 <p>
           As this
         </p>
-<pre class="programlisting">
-<span class="identifier">bith</span><span class="special">::</span><span class="identifier">conc_join_all</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">,</span> <span class="identifier">thread2</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">conc_join_all</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">,</span> <span class="identifier">thread2</span><span class="special">);</span>
 </pre>
 <p>
           In addition the user can join the first finishing thread.
         </p>
-<pre class="programlisting">
-<span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">conc_join_any</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">,</span> <span class="identifier">thread2</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">conc_join_any</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">,</span> <span class="identifier">thread2</span><span class="special">);</span>
 </pre>
 <p>
           Evidently, thread_tuple can not be used when we need dynamic creation or
           deletion. The <code class="computeroutput"><span class="identifier">boots</span><span class="special">::</span><span class="identifier">thread_group</span></code> class allows to group dynamically
           threads.
         </p>
-<pre class="programlisting">
-<span class="special">{</span>
+<pre class="programlisting"><span class="special">{</span>
     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_group</span> <span class="identifier">tg</span><span class="special">;</span>
     <span class="identifier">tg</span><span class="special">.</span><span class="identifier">create_thread</span><span class="special">(</span><span class="identifier">thread1</span><span class="special">);</span>
 
@@ -256,8 +242,7 @@
           in move-aware containers, and returned from functions. This allows the
           details of thread tuple creation to be wrapped in a function.
         </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="identifier">make_thread_tuple</span><span class="special">(...);</span>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="identifier">make_thread_tuple</span><span class="special">(...);</span>
 
 <span class="keyword">void</span> <span class="identifier">f</span><span class="special">()</span>
 <span class="special">{</span>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,14 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<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.InterThreads">
-<link rel="up" href="../index.html" title="Toward Boost.InterThreads">
-<link rel="prev" href="users_guide/glosary.html" title=" Glossary">
-<link rel="next" href="reference/concepts.html" title="Concepts">
+<title>Reference</title>
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Toward Boost.InterThreads 0.1.3">
+<link rel="up" href="../index.html" title="Toward Boost.InterThreads 0.1.3">
+<link rel="prev" href="users_guide.html" title="Users'Guide">
+<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>
@@ -21,78 +20,2796 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="users_guide/glosary.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference/concepts.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="users_guide.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="toward_boost_interthreads.reference"></a> Reference
+<a name="toward_boost_interthreads.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
 </h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section">Concepts</span></dt>
-<dd><dl><dt><span class="section">Decorator</span></dt></dl></dd>
-<dt><span class="section"><a href="reference/thread_decoration_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decoration</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="reference/thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration">
-        Class <code class="computeroutput"><span class="identifier">thread_decoration</span></code></a></span></dt></dl></dd>
-<dt><span class="section"><a href="reference/thread_decorator_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</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="reference/thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator">
-        Class <code class="computeroutput"><span class="identifier">thread_decorator</span></code></a></span></dt>
-<dt><span class="section"><a href="reference/thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.decorate">
-        Non Member Function <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code></a></span></dt>
-</dl></dd>
-<dt><span class="section"><a href="reference/thread_specific_shared_ptr_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_specific_shared_ptr</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="reference/thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr">
-        Template Class <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code></a></span></dt></dl></dd>
-<dt><span class="section"><a href="reference/keep_alive_file_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_keep_alive</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="reference/keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive">
-        class <code class="computeroutput"><span class="identifier">enable_keep_alive</span></code></a></span></dt>
-<dt><span class="section"><a href="reference/keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive">
-        class <code class="computeroutput"><span class="identifier">disable_keep_alive</span></code></a></span></dt>
-<dt><span class="section"><a href="reference/keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_check_point">
-        Non Member Function <code class="computeroutput"><span class="identifier">keep_alive_check_point</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="reference/keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_enabled">
-        Non Member Function <code class="computeroutput"><span class="identifier">keep_alive_enabled</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="reference/keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_set_on_dead_thread">
-        Non Member Function <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section">Concepts</span></dt>
+<dd><dl><dt><span class="section">Decorator</span></dt></dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decoration_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decoration</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="reference.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration">Class
+        <code class="computeroutput"><span class="identifier">thread_decoration</span></code></a></span></dt></dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</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="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator">Class
+        <code class="computeroutput"><span class="identifier">thread_decorator</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.decorate">Non
+        Member Function <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_specific_shared_ptr</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="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr">Template
+        Class <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code></a></span></dt></dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_keep_alive</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="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive">class
+        <code class="computeroutput"><span class="identifier">enable_keep_alive</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive">class
+        <code class="computeroutput"><span class="identifier">disable_keep_alive</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_check_point">Non
+        Member Function <code class="computeroutput"><span class="identifier">keep_alive_check_point</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_enabled">Non
+        Member Function <code class="computeroutput"><span class="identifier">keep_alive_enabled</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_set_on_dead_thread">Non
+        Member Function <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code></a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="reference/set_once_hpp.html"> Header
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.set_once_hpp">Header
       <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">set_once</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="reference/set_once_hpp.html#toward_boost_interthreads.reference.set_once_hpp.set_onceclass">
-        Template Class <code class="computeroutput"><span class="identifier">set_once</span><span class="special"><></span></code></a></span></dt></dl></dd>
-<dt><span class="section"><a href="reference/thread_tuple_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple</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="reference/thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class">
-        Template Class <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_make_thread_tuple">
-        Non Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple</span><span class="special">()</span></code></a></span></dt>
-</dl></dd>
-<dt><span class="section"><a href="reference/thread_tuple_once_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple_once</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="reference/thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class">
-        Template Class <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_make_thread_tuple_once">
-        Non Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple_once</span><span class="special">()</span></code></a></span></dt>
-</dl></dd>
-<dt><span class="section"><a href="reference/thread_group_once_hpp.html">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_group_once</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="reference/thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class">
-        Template Class <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><></span></code></a></span></dt>
-<dt><span class="section"><a href="reference/thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_make_thread_group_once">
-        Non Member Function <code class="computeroutput"><span class="identifier">make_thread_group_once</span><span class="special">()</span></code></a></span></dt>
+<dd><dl><dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.set_once_hpp.set_onceclass">Template
+        Class <code class="computeroutput"><span class="identifier">set_once</span><span class="special"><></span></code></a></span></dt></dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple</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="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class">Template
+        Class <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_make_thread_tuple">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple</span><span class="special">()</span></code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple_once</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="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class">Template
+        Class <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_make_thread_tuple_once">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple_once</span><span class="special">()</span></code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_group_once</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="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class">Template
+        Class <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_make_thread_group_once">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_group_once</span><span class="special">()</span></code></a></span></dt>
+</dl></dd>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.reference.concepts"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.concepts" title="Concepts">Concepts</a>
+</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section">Decorator</span></dt></dl></div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.concepts.decorator"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.concepts.decorator" title="Decorator">Decorator</a>
+</h4></div></div></div></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.reference.thread_decoration_hpp"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decoration_hpp" title="Header <boost/interthreads/thread_decoration.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decoration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration">Class
+        <code class="computeroutput"><span class="identifier">thread_decoration</span></code></a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup">Constructor
+          with setup</a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.constructor_with_setup___cleanup">Constructor
+          with setup & cleanup</a></span></dt>
+</dl></dd>
+</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">interthreads</span> <span class="special">{</span>
+    <span class="keyword">class</span> <span class="identifier">thread_decoration</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration" title="Class thread_decoration">Class
+        <code class="computeroutput"><span class="identifier">thread_decoration</span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup">Constructor
+          with setup</a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.constructor_with_setup___cleanup">Constructor
+          with setup & cleanup</a></span></dt>
+</dl></div>
+<p>
+          <code class="computeroutput"><span class="identifier">thread_decoration</span></code> defines
+          a couple of setup/cleanup functions chained to the last constructed decoration,
+          i.e. decorations are chained between them.
+        </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">thread_decoration</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">Callable1</span><span class="special">></span>
+    <span class="identifier">thread_decoration</span><span class="special">(</span><span class="identifier">Callable1</span> <span class="identifier">setup</span><span class="special">);</span>
+    
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable1</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">Callable2</span><span class="special">></span>
+    <span class="identifier">thread_decoration</span><span class="special">(</span><span class="identifier">Callable1</span> <span class="identifier">setup</span><span class="special">,</span> <span class="identifier">Callable2</span> <span class="identifier">cleanup</span><span class="special">);</span>
+    
+    <span class="special">~</span><span class="identifier">thread_decoration</span><span class="special">()</span> <span class="special">{</span>
+<span class="special">};</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup" title="Constructor with setup">Constructor
+          with setup</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable</span><span class="special">></span>
+<span class="identifier">thread_decoration</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">func</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Requires:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">Callable</span></code> is <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>. Copying <code class="computeroutput"><span class="identifier">setup</span></code> shall have no side effects,
+                  and the effect of calling the copy shall be equivalent to calling
+                  the original.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">setup</span></code> is copied
+                  into storage managed internally by the library, and that copy is
+                  invoked by the <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code> function.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a decoration.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  unsafe
+                </p></dd>
+</dl>
+</div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+              The library do not ensures any order of decorations.
+            </p></td></tr>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.constructor_with_setup___cleanup"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.constructor_with_setup___cleanup" title="Constructor with setup & cleanup">Constructor
+          with setup & cleanup</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable1</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">Callable2</span><span class="special">></span>
+<span class="identifier">thread_decoration</span><span class="special">(</span><span class="identifier">Callable1</span> <span class="identifier">setup</span><span class="special">,</span> <span class="identifier">Callable2</span> <span class="identifier">cleanup</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Requires:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">Callable1</span></code> &
+                  <code class="computeroutput"><span class="identifier">Callable1</span></code> are
+                  <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
+                  Copying <code class="computeroutput"><span class="identifier">setup</span></code> or
+                  <code class="computeroutput"><span class="identifier">cleanup</span></code> shall have
+                  no side effects, and the effect of calling the copy shall be equivalent
+                  to calling the original.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">setup</span></code> and <code class="computeroutput"><span class="identifier">cleanup</span></code> are copied into storage
+                  managed internally by the library, and the <code class="computeroutput"><span class="identifier">setup</span></code>
+                  copy is invoked by the <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code> function. If successful the cleanup
+                  function is registered to the to the thread exit handler.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a decoration.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  unsafe
+                </p></dd>
+</dl>
+</div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+              The library do not ensures any order of setup decorations neither of
+              cleanup decorations.
+            </p></td></tr>
+</table></div>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp" title="Header <boost/interthreads/thread_decorator.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator">Class
+        <code class="computeroutput"><span class="identifier">thread_decorator</span></code></a></span></dt>
+<dd><dl>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor">Copy
+          Move Constructor</a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor">Assign
+          Move Constructor</a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">>()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move">Member
+          Function <code class="computeroutput"><span class="identifier">move</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_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="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">()()</span></code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.decorate">Non
+        Member Function <code class="computeroutput"><span class="identifier">decorate</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">interthreads</span> <span class="special">{</span>
+    <span class="keyword">class</span> <span class="identifier">thread_decorator</span><span class="special">;</span>
+    <span class="keyword">void</span> <span class="identifier">decorate</span><span class="special">();</span>
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator" title="Class thread_decorator">Class
+        <code class="computeroutput"><span class="identifier">thread_decorator</span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor">Copy
+          Move Constructor</a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor">Assign
+          Move Constructor</a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">>()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move">Member
+          Function <code class="computeroutput"><span class="identifier">move</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_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="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">()()</span></code></a></span></dt>
+</dl></div>
+<p>
+          <code class="computeroutput"><span class="identifier">thread_decorator</span></code> is a functor
+          wrapping a function with the setup and the cleanup of chained decorations
+          which will be called only once by thread: decoration's setup are called
+          before the thread function and decoration's cleanup at thread exit.
+        </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">thread_decorator</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">class</span> <span class="identifier">Callable</span><span class="special">></span>
+    <span class="keyword">explicit</span> <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span><span class="special">&&</span> <span class="identifier">f</span><span class="special">);</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Callable</span><span class="special">></span>
+    <span class="keyword">explicit</span> <span class="identifier">thread_decorator</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">Callable</span><span class="special">></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">Callable</span><span class="special">></span>
+    <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">f</span><span class="special">,</span> 
+        <span class="keyword">typename</span> <span class="identifier">disable_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">F</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">F</span><span class="special">></span> <span class="special">></span>
+                           <span class="special">,</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">*</span> <span class="special">>::</span><span class="identifier">type</span><span class="special">=</span><span class="number">0</span><span class="special">);</span>        
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">,</span> <span class="special">...></span>
+    <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span><span class="special">,</span> <span class="identifier">A2</span> <span class="identifier">a2</span><span class="special">,</span> <span class="special">...)</span>
+
+    <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
+    
+    <span class="identifier">thread_decorator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
+
+    <span class="identifier">thread_decorator</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">thread_decorator</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span>
+
+    <span class="keyword">void</span> <span class="keyword">operator</span> <span class="special">()();</span>
+
+<span class="special">};</span>
+</pre>
+<p>
+          Functor wrapping the user function thread to ensure that all the decorations
+          are called.
+        </p>
+<p>
+          Objects of type <code class="computeroutput"><span class="identifier">thread_decorator</span></code>
+          are movable, so they can be stored in move-aware containers, and returned
+          from functions. This allows the details of thread decoration to be wrapped
+          in a function.
+        </p>
+<pre class="programlisting"><span class="identifier">thread_decorator</span> <span class="identifier">make_decorator</span><span class="special">();</span>
+
+<span class="keyword">void</span> <span class="identifier">f</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="identifier">boot</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">some_thread</span><span class="special">(</span><span class="identifier">make_decorator</span><span class="special">());</span>
+    <span class="identifier">some_thread</span><span class="special">.</span><span class="identifier">join</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            On compilers that support rvalue references, <code class="computeroutput"><span class="identifier">thread_decorator</span></code>
+            will provides a proper move constructor and move-assignment operator,
+            and therefore meets the C++0x <code class="computeroutput"><span class="identifier">MoveConstructible</span></code>
+            and <code class="computeroutput"><span class="identifier">MoveAssignable</span></code> concepts.
+            With such compilers, <code class="computeroutput"><span class="identifier">thread_decorator</span></code>
+            can therefore be used with containers that support those concepts.
+          </p>
+<p>
+            For other compilers, move support is provided with a move emulation layer,
+            so containers must explicitly detect that move emulation layer. See
+            <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">thread</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">move</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> for details.
+          </p>
+</td></tr>
+</table></div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructor" title="Constructor">Constructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Callable</span><span class="special">></span>
+<span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span><span class="special">&&</span> <span class="identifier">func</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable</span><span class="special">></span>
+<span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">func</span><span class="special">);</span>        
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Template parameters:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">Callable</span></code> must by
+                  <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">func</span></code> is copied
+                  into storage managed internally by the library, and that copy will
+                  be invoked after the operator() function when the decorate is used
+                  as Callable of a newly-created thread of execution.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructorn"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructorn" title="Constructor">Constructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">,</span> <span class="special">...></span>
+<span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">func</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span><span class="special">,</span> <span class="identifier">A2</span> <span class="identifier">a2</span><span class="special">,</span> <span class="special">...)</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Template parameters:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">Callable</span></code> must by
+                  <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">func</span></code> is copied
+                  into storage managed internally by the library, and that copy will
+                  be invoked after the operator() function when the decorate is used
+                  as Callable of a newly-created thread of execution.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe
+                </p></dd>
+<dt><span class="term">Limitations:</span></dt>
+<dd><p>
+                  The current implementation defines overloads up to four parameters.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor" title="Copy Move Constructor">Copy
+          Move Constructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
+<span class="identifier">thread_decorator</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">thread_decorator</span><span class="special">></span> <span class="identifier">other</span><span class="special">)</span> <span class="special">{</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Template parameters:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">Callable</span></code> must by
+                  <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">func</span></code> is copied
+                  into storage managed internally by the library, and that copy will
+                  be invoked after the operator() function when the decorate is used
+                  as Callable of a newly-created thread of execution.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor" title="Assign Move Constructor">Assign
+          Move Constructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">thread_decorator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
+<span class="identifier">thread_decorator</span><span class="special">&</span> <span class="keyword">operator</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">thread_decorator</span><span class="special">></span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Requires:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">Callable</span></code> must by
+                  <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">func</span></code> is copied
+                  into storage managed internally by the library, and that copy will
+                  be invoked after the operator() function when the decorate is used
+                  as Callable of a newly-created thread of execution.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  a reference to <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>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  neutral
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion" title="Member Function operator detail::thread_move_t<thread_decorator>()">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">>()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</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>
+                  helper for move semantics emulation.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  the move form <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>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  neutral
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move" title="Member Function move()">Member
+          Function <code class="computeroutput"><span class="identifier">move</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">></span> <span class="identifier">move</span><span class="special">()</span> <span class="special">{</span>
+<span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">move</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>
+                  Move *this to the caller.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  the move form <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>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  neutral
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_swap"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_swap" title="Member Function swap()">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">thread_decorator</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  neutral
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f" title="Member Function operator()()">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">()()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</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>
+                  Functor operator
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Any exception thrown by the decorations or the user function.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  unsafe - depends on the decorations construction/destruction.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.decorate"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_decorator_hpp.decorate" title="Non Member Function decorate()">Non
+        Member Function <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code></a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">decorate</span><span class="special">();</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Requires:</span></dt>
+<dd><p>
+                <code class="computeroutput"><span class="identifier">Callable</span></code> is <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>. Copying <code class="computeroutput"><span class="identifier">f</span></code> shall have no side effects, and
+                the effect of calling the copy shall be equivalent to calling the
+                original.
+              </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                Calls every declared decoration using the thread_decoration class.
+              </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                All the decorations have been called.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                Any exception thrown by the decorations.
+              </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                unsafe - depends on the decorations construction/destruction.
+              </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp" title="Header <boost/interthreads/thread_specific_shared_ptr.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_specific_shared_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr">Template
+        Class <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code></a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters">Template
+          parameters</a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types">Public
+          types</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup">Cleanup
+          Constructor</a></span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get">Member
+          Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset">Member
+          Function <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get">Member
+          Function <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex">Member
+          Function <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map">Member
+          Function <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code></a></span></dt>
+</dl></dd>
+</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">interthreads</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">class</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special">;</span>
+
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr" title="Template Class thread_specific_shared_ptr<>">Template
+        Class <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters">Template
+          parameters</a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types">Public
+          types</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup">Cleanup
+          Constructor</a></span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get">Member
+          Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset">Member
+          Function <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get">Member
+          Function <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex">Member
+          Function <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map">Member
+          Function <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<p>
+          <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code>
+          is an extension of the thread_specific_ptr providing access to the thread
+          specific context from other threads.
+        </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">class</span> <span class="identifier">thread_specific_shared_ptr</span> <span class="special">:</span> <span class="keyword">private</span> <span class="identifier">noncopyable</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>               <span class="identifier">shared_ptr_type</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="char">'implementation defined'</span>    <span class="identifier">map_type</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="char">'implementation defined'</span>    <span class="identifier">mutex_type</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="char">'implementation defined'</span>    <span class="identifier">lock_type</span><span class="special">;</span>
+
+    <span class="identifier">thread_specific_shared_ptr</span><span class="special">();</span>
+    <span class="keyword">explicit</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special">(</span><span class="keyword">void</span> <span class="special">(*</span><span class="identifier">cleanup_</span><span class="special">)(</span><span class="identifier">shared_ptr_type</span><span class="special">));</span>
+    <span class="special">~</span><span class="identifier">thread_specific_shared_ptr</span><span class="special">();</span>
+
+    <span class="identifier">T</span><span class="special">*</span>                      <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</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">const</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">const</span><span class="special">;</span>
+    <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">();</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">></span> 
+    <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">);</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">></span> 
+    <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">d</span><span class="special">);</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> 
+    <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</span><span class="special">);</span>
+    
+    <span class="identifier">mutex_type</span><span class="special">&</span>             <span class="identifier">get_mutex</span><span class="special">();</span>
+    <span class="keyword">const</span> <span class="identifier">map_type</span><span class="special">&</span>         <span class="identifier">get_map</span><span class="special">(</span><span class="identifier">lock_type</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="identifier">shared_ptr_type</span>   <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="identifier">shared_ptr_type</span>   <span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="keyword">private</span><span class="special">:</span>        
+    <span class="identifier">shared_ptr_type</span>         <span class="identifier">get_shared_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters" title="Template parameters">Template
+          parameters</a>
+</h5></div></div></div>
+<p>
+            <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> is instantiated with the following
+            types:
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                T The type of the pointeed object
+              </li></ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types" title="Public types">Public
+          types</a>
+</h5></div></div></div>
+<p>
+            <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> defines the following types:
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+                <span class="bold"><strong><code class="computeroutput"><span class="identifier">shared_ptr_type</span></code></strong></span>
+                The shared pointed type.
+              </li>
+<li class="listitem">
+                <span class="bold"><strong><code class="computeroutput"><span class="identifier">map_type</span></code></strong></span>
+                The mapping type from <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code>
+                to <code class="computeroutput"><span class="identifier">shared_ptr_type</span></code>
+              </li>
+<li class="listitem">
+                <span class="bold"><strong><code class="computeroutput"><span class="identifier">mutex_type</span></code></strong></span>
+                The protecting mutext type follwing the Lockable Concept
+              </li>
+<li class="listitem">
+                <span class="bold"><strong><code class="computeroutput"><span class="identifier">lock_type</span></code></strong></span>
+                The lock used to get the map follwing the unique_lock subjacent Concept
+              </li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_default_constructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_default_constructor" title="Constructor">Constructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">thread_specific_shared_ptr</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>
+                  Construct a <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> object for storing a pointer
+                  to an object of type <code class="computeroutput"><span class="identifier">T</span></code>
+                  specific to each thread.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup" title="Cleanup Constructor">Cleanup
+          Constructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special">(</span><span class="keyword">void</span> <span class="special">(*</span><span class="identifier">cleanup_</span><span class="special">)(</span><span class="identifier">shared_ptr_type</span><span class="special">));</span>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Requires:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">cleanup_function</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">())</span></code> does not throw any exceptions.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Construct a <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> object for storing a pointer
+                  to an object of type <code class="computeroutput"><span class="identifier">T</span></code>
+                  specific to each thread. The supplied <code class="computeroutput"><span class="identifier">cleanup_function</span></code>
+                  will be called at thread exit.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_destructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_destructor" title="Destructor">Destructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">thread_specific_shared_ptr</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>
+                  Remove from the static map the current thread::id and 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>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe.
+                </p></dd>
+</dl>
+</div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+              Care needs to be taken to ensure that any threads still running after
+              an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> has been destroyed do not call
+              any member functions on that instance. Is for this raison that usualy
+              instance of this class are static.
+            </p></td></tr>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get" title="Member Function get()">Member
+          Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">shared_ptr_type</span> <span class="identifier">get</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>
+                  The pointer associated with the current thread.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe.
+                </p></dd>
+</dl>
+</div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+              The initial value associated with an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> is <code class="computeroutput"><span class="number">0</span></code>
+              for each thread.
+            </p></td></tr>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow" title="Member Function operator->()">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">T</span><span class="special">*</span> <span class="keyword">operator</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">Requires:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code>
+                  is not <code class="computeroutput"><span class="number">0</span></code>.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code>
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star" title="Member Function operator*()">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">T</span><span class="special">&</span> <span class="keyword">operator</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">Requires:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code>
+                  is not <code class="computeroutput"><span class="number">0</span></code>.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="special">*(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">())</span></code>
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset" title="Member Function reset()">Member
+          Function <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">reset</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>
+                  Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">().</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="number">0</span></code>
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe.
+                </p></dd>
+</dl>
+</div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">new_value</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>
+                  Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">(</span><span class="identifier">new_value</span><span class="special">).</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="identifier">new_value</span></code>
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe.
+                </p></dd>
+</dl>
+</div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">deleter</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>
+                  Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">(</span><span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">deleter</span><span class="special">).</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="identifier">new_value</span></code>
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe.
+                </p></dd>
+</dl>
+</div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">deleter</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</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>
+                  Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">(</span><span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">deleter</span><span class="special">,</span> <span class="identifier">a</span><span class="special">).</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="identifier">new_value</span></code>
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
+<dt><span class="term">Thread safety:</span></dt>
+<dd><p>
+                  safe.
+                </p></dd>
+</dl>
+</div>
+<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="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()!=</span><span class="identifier">new_value</span></code> and <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code> is non-<code class="computeroutput"><span class="identifier">NULL</span></code>,
+                  invoke <code class="computeroutput"><span class="keyword">delete</span> <span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code> or <code class="computeroutput"><span class="identifier">deleter</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">())</span></code> as appropriate. Store <code class="computeroutput"><span class="identifier">new_value</span></code> as the pointer associated
+                  with the current thread.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get" title="Member Function wait_and_get()">Member
+          Function <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">shared_ptr_type</span> <span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">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">Effects:</span></dt>
+<dd><p>
+                  Waits until the specific shared pointer has been set and returns
+                  a shared pointer to this context.
+                </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>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora" title="Member Function operator[]()">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">shared_ptr_type</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">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">Effects:</span></dt>
+<dd><p>
+                  Returns a copy of the specific shared_ptr of the thread of execution
+                  identified by the <code class="computeroutput"><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">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex" title="Member Function get_mutex()">Member
+          Function <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">mutex_type</span><span class="special">&</span>             <span class="identifier">get_mutex</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 a reference to the protection mutex.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map" title="Member Function get_map()">Member
+          Function <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">map_type</span><span class="special">&</span>         <span class="identifier">get_map</span><span class="special">(</span><span class="identifier">lock_type</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">Effects:</span></dt>
+<dd><p>
+                  Returns a reference to the mapping from <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code>
+                  to the specific pointers provided the user gives a lock on the
+                  motext get using <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code>.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp" title="Header <boost/interthreads/thread_keep_alive.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_keep_alive</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive">class
+        <code class="computeroutput"><span class="identifier">enable_keep_alive</span></code></a></span></dt>
+<dd><dl>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive">class
+        <code class="computeroutput"><span class="identifier">disable_keep_alive</span></code></a></span></dt>
+<dd><dl>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
 </dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_check_point">Non
+        Member Function <code class="computeroutput"><span class="identifier">keep_alive_check_point</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_enabled">Non
+        Member Function <code class="computeroutput"><span class="identifier">keep_alive_enabled</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_set_on_dead_thread">Non
+        Member Function <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<p>
+        Includes the keep alive enabling/disabling classes and non member functions.
+      </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">interthreads</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">this_thread</span> <span class="special">{</span>
+        <span class="keyword">class</span> <span class="identifier">enable_keep_alive</span><span class="special">;</span>
+        <span class="keyword">class</span> <span class="identifier">disable_keep_alive</span><span class="special">;</span>
+
+        <span class="keyword">void</span> <span class="identifier">keep_alive_check_point</span><span class="special">();</span>
+        <span class="keyword">bool</span> <span class="identifier">keep_alive_enabled</span><span class="special">();</span>
+        <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="special">(*</span><span class="identifier">on_dead_thread_type</span><span class="special">)(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span><span class="special">);</span>
+        <span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</span><span class="special">);</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive" title="class enable_keep_alive">class
+        <code class="computeroutput"><span class="identifier">enable_keep_alive</span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
 </dl></div>
+<p>
+          Keep alive enabler.
+        </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">enable_keep_alive</span> <span class="special">:</span> <span class="keyword">private</span> <span class="identifier">noncopyable</span><span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">enable_keep_alive</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">threshold</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">size_t</span> <span class="identifier">tap</span><span class="special">=</span><span class="number">1</span><span class="special">);</span>
+    <span class="special">~</span><span class="identifier">enable_keep_alive</span><span class="special">();</span>
+<span class="special">};</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Constructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Constructor" title="Constructor">Constructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">enable_keep_alive</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">threshold</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">size_t</span> <span class="identifier">tap</span><span class="special">=</span><span class="number">1</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>
+                  Enable the keep alive mechanism on this thread of execution.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Destructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Destructor" title="Destructor">Destructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">enable_keep_alive</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>
+                  Restore the keep alive mechanism as it was before the constructor.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive" title="class disable_keep_alive">class
+        <code class="computeroutput"><span class="identifier">disable_keep_alive</span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+</dl></div>
+<p>
+          Keep alive disabler.
+        </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">disable_keep_alive</span> <span class="keyword">private</span> <span class="identifier">noncopyable</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">disable_keep_alive</span><span class="special">();</span>
+    <span class="special">~</span><span class="identifier">disable_keep_alive</span><span class="special">();</span>
+<span class="special">};</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Constructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Constructor" title="Constructor">Constructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">disable_keep_alive</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>
+                  Disable the keep alive mechanism on this thread of execution.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Destructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Destructor" title="Destructor">Destructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">disable_keep_alive</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>
+                  Restore the keep alive mechanism as it was before the constructor.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_check_point"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_check_point" title="Non Member Function keep_alive_check_point()">Non
+        Member Function <code class="computeroutput"><span class="identifier">keep_alive_check_point</span><span class="special">()</span></code></a>
+</h4></div></div></div>
+<p>
+          Keep alive check point.
+        </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">keep_alive_check_point</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>
+                States that the current thread is alive.
+              </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                The thread is alive.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                Nothing
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_enabled"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_enabled" title="Non Member Function keep_alive_enabled()">Non
+        Member Function <code class="computeroutput"><span class="identifier">keep_alive_enabled</span><span class="special">()</span></code></a>
+</h4></div></div></div>
+<p>
+          Keep alive query.
+        </p>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">keep_alive_enabled</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>
+                States if the keep alive mechanism is enabled on this thread.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                Nothing
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_set_on_dead_thread"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_set_on_dead_thread" title="Non Member Function set_on_dead_thread()">Non
+        Member Function <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code></a>
+</h4></div></div></div>
+<p>
+          Keep alive on dead thread action setting.
+        </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</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>
+                Modifies the action to be done when a this thread is declared dead.
+              </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                Nothing
+              </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.reference.set_once_hpp"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.set_once_hpp" title="Header <boost/interthreads/set_once.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">set_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.set_once_hpp.set_onceclass">Template
+        Class <code class="computeroutput"><span class="identifier">set_once</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">interthreads</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">class</span> <span class="identifier">set_once</span><span class="special">;</span>
+<span class="special">}</span>    
+<span class="special">}</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.set_once_hpp.set_onceclass"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.set_once_hpp.set_onceclass" title="Template Class set_once<>">Template
+        Class <code class="computeroutput"><span class="identifier">set_once</span><span class="special"><></span></code></a>
+</h4></div></div></div>
+<p>
+          <code class="computeroutput"><span class="identifier">set_once</span><span class="special"><></span></code>
+          is a synchonizer that allows to set a variable only once, notifying to
+          the variable value to whatever is waiting for that.
+        </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">class</span> <span class="identifier">set_once</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">value_type</span><span class="special">;</span>
+    
+    <span class="identifier">set_once</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">TimeDuration</span><span class="special">></span>
+    <span class="keyword">bool</span> <span class="identifier">wait_for</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">TimeDuration</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+    
+    <span class="identifier">value_type</span> <span class="identifier">get</span><span class="special">();</span>       
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">value_type</span><span class="special">></span> <span class="identifier">get_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">value_type</span><span class="special">></span> <span class="identifier">get_for</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">TimeDuration</span><span class="special">&</span> <span class="identifier">rel_time</span><span class="special">);</span>
+
+    <span class="keyword">bool</span> <span class="identifier">set_if_unassigned</span><span class="special">(</span><span class="identifier">value_type</span> <span class="identifier">id</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">static</span> <span class="keyword">void</span> <span class="identifier">decorator</span><span class="special">(</span><span class="identifier">this_type</span><span class="special">&</span> <span class="identifier">once</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">value</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fct</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">static</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">thread</span><span class="special">></span> <span class="identifier">make_thread</span><span class="special">(</span><span class="identifier">this_type</span><span class="special">&</span> <span class="identifier">once</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">value</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fct</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp" title="Header <boost/interthreads/thread_tuple.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class">Template
+        Class <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code></a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.template_parameters">Template
+          parameters</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_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="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_until___">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_for___">Member
+          function <code class="computeroutput"><span class="identifier">join_all_for</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_any_until___">Member
+          function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_make_thread_tuple">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple</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">interthreads</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">N</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">thread_tuple</span><span class="special">;</span>
+
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+    <span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</span><span class="special">></span> <span class="identifier">make_thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</span><span class="special">);</span>
+
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class" title="Template Class thread_tuple<>">Template
+        Class <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.template_parameters">Template
+          parameters</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_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="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_until___">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_for___">Member
+          function <code class="computeroutput"><span class="identifier">join_all_for</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_any_until___">Member
+          function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<p>
+          <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
+          defines a thread groupe where the number of threads is know statically
+          and the threads are created at construction time.
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">n</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">thread_tuple</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">F0</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="number">1</span><span class="special">></span>
+    <span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">fn</span><span class="special">-</span><span class="number">1</span><span class="special">);</span>
+    
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span> <span class="identifier">f</span><span class="special">);</span>
+    <span class="special">~</span><span class="identifier">thread_tuple</span><span class="special">();</span>
+
+    <span class="comment">// move support
+</span>    <span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="identifier">thread_tuple</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</span><span class="special">>>();</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</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">thread_tuple</span><span class="special"><</span><span class="identifier">n</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_all</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">join_all_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_all_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">void</span> <span class="identifier">detach</span><span class="special">();</span>
+    <span class="keyword">void</span> <span class="identifier">detach_all</span><span class="special">();</span>
+
+    <span class="keyword">void</span> <span class="identifier">interrupt</span><span class="special">();</span>
+    <span class="keyword">void</span> <span class="identifier">interrupt_all</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="identifier">size_t</span> <span class="identifier">size</span><span class="special">();</span>
+    
+    <span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">);</span>
+<span class="special">};</span>    
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+          The <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
+          class is responsible for launching and managing a static collection of
+          threads that are related in some fashion. No new threads can be added to
+          the tuple once constructed.
+        </p>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.template_parameters"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.template_parameters" title="Template parameters">Template
+          parameters</a>
+</h5></div></div></div>
+<p>
+            <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
+            is instantiated with the following value:
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                n is the size of the tuple.
+              </li></ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_callable_constructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_callable_constructor" title="Constructor">Constructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+<span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">func_0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">func_n</span><span class="special">-</span><span class="number">1</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">Fk</span></code> must by copyable.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">func_k</span></code> is copied
+                  into storage managed internally by the library, and that copy is
+                  invoked on a newly-created thread of execution. If this invocation
+                  results in an exception being propagated into the internals of
+                  the library that is not of type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code>,
+                  then <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">()</span></code>
+                  will be called.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to the newly created tuple of threads 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_resource_error</span></code> if an error
+                  occurs.
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Currently up to ten arguments <code class="computeroutput"><span class="identifier">func_0</span></code>
+                  to <code class="computeroutput"><span class="identifier">funct_9</span></code> can
+                  be specified.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_destructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_destructor" title="Destructor">Destructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">thread_tuple</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 *this have associateds thread of execution, calls detach() on
+                  them. Destroys *this.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_joinable"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_joinable" title="Member function joinable()">Member
+          function <code class="computeroutput"><span class="identifier">joinable</span><span class="special">()</span></code></a>
+</h5></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 threads 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">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join" title="Member function join_all()">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join</span><span class="special">();</span>
+<span class="keyword">void</span> <span class="identifier">join_all</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>
+                  Call <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the tuple has terminated.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_until___"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_until___" title="Member function join_all_until()">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">join_all_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>
+</pre>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  Call <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code> on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code>
+                  object in the tuple.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the tuple has terminated.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true if joined.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><>::</span><span class="identifier">join_all_until</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_for___"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_for___" title="Member function join_all_for()">Member
+          function <code class="computeroutput"><span class="identifier">join_all_for</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><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">Effects:</span></dt>
+<dd><p>
+                  As <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">(</span><span class="identifier">now</span><span class="special">()+</span><span class="identifier">rel_time</span><span class="special">)</span></code>.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the tuple has terminated.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true if joined.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><>::</span><span class="identifier">join_all_for</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt" title="Member function join_any()">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">conc_join_any</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>
+                  Call <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code>
+                  on a temporary thread_tuple and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the tuple has terminated.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code> is one of the predefined interruption
+                  points, <code class="computeroutput"><span class="identifier">conc_join_any</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_any_until___"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_any_until___" title="Member function join_any_until()">Member
+          function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">conc_join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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>
+                  Call <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code> on a temporary thread_tuple and
+                  the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the tuple has terminated.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true if joined.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code> is one of the predefined interruption
+                  points, <code class="computeroutput"><span class="identifier">conc_join_any_until</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all" title="Member function detach_all()">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">detach_all</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>
+                  Call <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all" title="Member function interrupt_all()">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">interrupt_all</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>
+                  Call <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">interrupt</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size" title="Member function size()">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">size</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 number of threads in the tuple.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_make_thread_tuple"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_make_thread_tuple" title="Non Member Function make_thread_tuple()">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple</span><span class="special">()</span></code></a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+<span class="identifier">thread_tuple</span> <span class="identifier">make_thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</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>
+                makes a new thread_tuple<>.
+              </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                the created thread tuple.
+              </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp" title="Header <boost/interthreads/thread_tuple_once.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class">Template
+        Class <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><></span></code></a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.template_parameters">Template
+          parameters</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_all_until___">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_any___">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_make_thread_tuple_once">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple_once</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">interthreads</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">N</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">thread_tuple_once</span><span class="special">;</span>
+
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+    <span class="identifier">thread_tuple</span> <span class="identifier">make_thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</span><span class="special">);</span>
+
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class" title="Template Class thread_tuple_once<>">Template
+        Class <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><></span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.template_parameters">Template
+          parameters</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_all_until___">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_any___">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<p>
+          <code class="computeroutput"><span class="identifier">biththread_tuple_once</span></code> is
+          an extension of the <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_tuple</span></code>
+          which allows to join the thread finishing the first, using for that the
+          <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">set_once</span></code> synchronizer.
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">n</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">thread_tuple_once</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">F0</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="number">1</span><span class="special">></span>
+    <span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">fn</span><span class="special">-</span><span class="number">1</span><span class="special">);</span>
+    
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span> <span class="identifier">f</span><span class="special">);</span>
+    <span class="special">~</span><span class="identifier">thread_tuple_once</span><span class="special">();</span>
+
+    <span class="comment">// move support
+</span>    <span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="identifier">thread_tuple_once</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>>();</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</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">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>&</span> <span class="identifier">x</span><span class="special">);</span>
+
+    <span class="keyword">bool</span> <span class="identifier">joinables</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">join_all_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_all_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">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</span><span class="special">();</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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">void</span> <span class="identifier">detach_all</span><span class="special">();</span>
+
+    <span class="keyword">void</span> <span class="identifier">interrupt_all</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="identifier">size_t</span> <span class="identifier">size</span><span class="special">();</span>
+    
+    <span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">);</span>
+<span class="special">};</span>    
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+          The __thread_tuple<span class="underline">once</span>_ class is
+          responsible for launching and managing a static collection of threads that
+          are related in some fashion. No new threads can be added to the tuple once
+          constructed.
+        </p>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.template_parameters"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.template_parameters" title="Template parameters">Template
+          parameters</a>
+</h5></div></div></div>
+<p>
+            <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><></span></code>
+            is instantiated with the following value:
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                n is the size of the tuple.
+              </li></ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_callable_constructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_callable_constructor" title="Constructor">Constructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+<span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">func_0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">func_n</span><span class="special">-</span><span class="number">1</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">Fk</span></code> must by copyable.
+                </p></dd>
+<dt><span class="term">Effects:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="identifier">func_k</span></code> is copied
+                  into storage managed internally by the library, and that copy is
+                  invoked on a newly-created thread of execution. If this invocation
+                  results in an exception being propagated into the internals of
+                  the library that is not of type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code>,
+                  then <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">()</span></code>
+                  will be called.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to the newly created tuple of threads 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_resource_error</span></code> if an error
+                  occurs.
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Currently up to ten arguments <code class="computeroutput"><span class="identifier">func_0</span></code>
+                  to <code class="computeroutput"><span class="identifier">funct_9</span></code> can
+                  be specified.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_destructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_destructor" title="Destructor">Destructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">thread_tuple_once</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 *this have associateds thread of execution, calls detach() on
+                  them. Destroys *this.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable" title="Member function joinables()">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">joinables</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 threads 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">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join" title="Member function join_all()">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join_all</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>
+                  Call <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the tuple has terminated.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_all_until___"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_all_until___" title="Member function join_all_until()">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">join_all_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_all_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>
+                  Call <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code> on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code>
+                  object in the tuple.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the tuple has terminated.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true if joined.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_any___"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_any___" title="Member function join_any()">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</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>
+                  Call <code class="computeroutput"><span class="identifier">join_first</span><span class="special">()</span></code> and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the tuple has terminated.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt" title="Member function timed_join_first_then_interrupt()">Member
+          function <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">timed_join_first_then_interrupt</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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">timed_join_first_then_interrupt</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>
+                  Call <code class="computeroutput"><span class="identifier">timed_join_first</span><span class="special">()</span></code> and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the tuple has terminated.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true if joined.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all" title="Member function detach_all()">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">detach_all</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>
+                  Call <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all" title="Member function interrupt_all()">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">interrupt_all</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>
+                  Call <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">interrupt</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size" title="Member function size()">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">size</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 number of threads in the tuple.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_make_thread_tuple_once"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_make_thread_tuple_once" title="Non Member Function make_thread_tuple_once()">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple_once</span><span class="special">()</span></code></a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+<span class="identifier">thread_tuple_once</span> <span class="identifier">make_thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</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>
+                makes a new thread_tuple_once<>.
+              </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                the created thread tuple.
+              </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp" title="Header <boost/interthreads/thread_group_once.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_group_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class">Template
+        Class <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><></span></code></a></span></dt>
+<dd><dl>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.member_function__interrupt_all___">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_make_thread_group_once">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_group_once</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">interthreads</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">N</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">thread_group</span><span class="special">;</span>
+
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class" title="Template Class thread_group_once<>">Template
+        Class <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><></span></code></a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.member_function__interrupt_all___">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+</dl></div>
+<p>
+          <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><></span></code>
+          is an extension of the boost::thread_group which allows to join the thread
+          finishing the first, using for that the set_once synchronizer.
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">n</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">thread_group_once</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">thread_group_once</span><span class="special">();</span>
+    <span class="special">~</span><span class="identifier">thread_group_once</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="special">*</span> <span class="identifier">create_thread</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">threadfunc</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">remove_thread</span><span class="special">(</span><span class="identifier">thread</span><span class="special">*</span> <span class="identifier">thrd</span><span class="special">);</span>
+
+    <span class="comment">// move support
+</span>    <span class="identifier">thread_group_once</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="identifier">thread_group_once</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">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</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">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>>();</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</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">thread_group_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>&</span> <span class="identifier">x</span><span class="special">);</span>
+
+    <span class="keyword">bool</span> <span class="identifier">joinables</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    
+    <span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">join_all_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_all_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">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</span><span class="special">();</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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">void</span> <span class="identifier">detach_all</span><span class="special">();</span>
+
+    <span class="keyword">void</span> <span class="identifier">interrupt_all</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="identifier">size_t</span> <span class="identifier">size</span><span class="special">();</span>
+    
+    <span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">);</span>
+<span class="special">};</span>    
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_callable_constructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_callable_constructor" title="Constructor">Constructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">thread_group_once</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>
+                  creates a thread group.
+                </p></dd>
+<dt><span class="term">Postconditions:</span></dt>
+<dd><p>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to the newly created group of threads 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_resource_error</span></code> if an error
+                  occurs.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_destructor"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_destructor" title="Destructor">Destructor</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">thread_group_once</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 *this have associateds thread of execution, calls detach() on
+                  them. Destroys *this.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable" title="Member function joinables()">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">joinables</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 threads 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">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join" title="Member function join_all()">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join_all</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>
+                  Call <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the group.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the group has terminated.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join" title="Member function join_all_until()">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">join_all_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_all_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>
+                  Call <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code> on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code>
+                  object in the group.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the group has terminated.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true if joined.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt" title="Member function join_any()">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</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>
+                  Call <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code>
+                  and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the group has terminated.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">join_any</span></code>
+                  is one of the predefined interruption points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">join_any</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt" title="Member function join_any_until()">Member
+          function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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>
+                  Call <code class="computeroutput"><span class="identifier">get_until</span><span class="special">()</span></code> and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
+<dt><span class="term">Postcondition:</span></dt>
+<dd><p>
+                  Every thread in the group has terminated.
+                </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                  true if joined.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing
+                </p></dd>
+<dt><span class="term">Note:</span></dt>
+<dd><p>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all" title="Member function detach_all()">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">detach_all</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>
+                  Call <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the group.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.member_function__interrupt_all___"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.member_function__interrupt_all___" title="Member function interrupt_all()">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">interrupt_all</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>
+                  Call <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">interrupt</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the group.
+                </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size" title="Member function size()">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">size</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 number of threads in the group.
+                </p></dd>
+<dt><span class="term">Throws:</span></dt>
+<dd><p>
+                  Nothing.
+                </p></dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_make_thread_group_once"></a><a class="link" href="reference.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_make_thread_group_once" title="Non Member Function make_thread_group_once()">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_group_once</span><span class="special">()</span></code></a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+<span class="identifier">thread_group_once</span> <span class="identifier">make_thread_group_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</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>
+                makes a new thread_group_once<>.
+              </p></dd>
+<dt><span class="term">Returns:</span></dt>
+<dd><p>
+                the created thread group.
+              </p></dd>
+</dl>
+</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>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009,2011 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>
@@ -100,7 +2817,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="users_guide/glosary.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference/concepts.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="users_guide.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="appendices.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/concepts.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/concepts.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/concepts.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,15 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <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.InterThreads">
-<link rel="up" href="../reference.html" title=" Reference">
-<link rel="prev" href="../reference.html" title=" Reference">
-<link rel="next" href="thread_decoration_hpp.html" title="
-      Header <boost/interthreads/thread_decoration.hpp>">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="../reference.html" title="Reference">
+<link rel="next" href="thread_decoration_hpp.html" title="Header <boost/interthreads/thread_decoration.hpp>">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -24,13 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../reference.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="thread_decoration_hpp.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.reference.concepts"></a>Concepts
+<a name="toward_boost_interthreads.reference.concepts"></a><a class="link" href="concepts.html" title="Concepts">Concepts</a>
 </h3></div></div></div>
 <div class="toc"><dl><dt><span class="section">Decorator</span></dt></dl></div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.concepts.decorator"></a>Decorator
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.reference.concepts.decorator"></a><a class="link" href="concepts.html#toward_boost_interthreads.reference.concepts.decorator" title="Decorator">Decorator</a>
 </h4></div></div></div></div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/keep_alive_file_hpp.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/keep_alive_file_hpp.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/keep_alive_file_hpp.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,17 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>
-      Header <boost/interthreads/thread_keep_alive.hpp></title>
+<title>Header <boost/interthreads/thread_keep_alive.hpp></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.InterThreads">
-<link rel="up" href="../reference.html" title=" Reference">
-<link rel="prev" href="thread_specific_shared_ptr_hpp.html" title="
-      Header <boost/interthreads/thread_specific_shared_ptr.hpp>">
-<link rel="next" href="set_once_hpp.html" title=" Header
-      <boost/interthreads/set_once.hpp>">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="thread_specific_shared_ptr_hpp.html" title="Header <boost/interthreads/thread_specific_shared_ptr.hpp>">
+<link rel="next" href="set_once_hpp.html" title="Header <boost/interthreads/set_once.hpp>">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,273 +22,239 @@
 <div class="spirit-nav">
 <a accesskey="p" href="thread_specific_shared_ptr_hpp.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="set_once_hpp.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.reference.keep_alive_file_hpp"></a><a href="keep_alive_file_hpp.html" title="
-      Header <boost/interthreads/thread_keep_alive.hpp>">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_keep_alive</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp"></a><a class="link" href="keep_alive_file_hpp.html" title="Header <boost/interthreads/thread_keep_alive.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_keep_alive</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
 </h3></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive">
-        class <code class="computeroutput"><span class="identifier">enable_keep_alive</span></code></a></span></dt>
+<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive">class
+        <code class="computeroutput"><span class="identifier">enable_keep_alive</span></code></a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Destructor">
-          Destructor</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
 </dl></dd>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive">
-        class <code class="computeroutput"><span class="identifier">disable_keep_alive</span></code></a></span></dt>
+<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive">class
+        <code class="computeroutput"><span class="identifier">disable_keep_alive</span></code></a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Destructor">
-          Destructor</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
 </dl></dd>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_check_point">
-        Non Member Function <code class="computeroutput"><span class="identifier">keep_alive_check_point</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_enabled">
-        Non Member Function <code class="computeroutput"><span class="identifier">keep_alive_enabled</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_set_on_dead_thread">
-        Non Member Function <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_check_point">Non
+        Member Function <code class="computeroutput"><span class="identifier">keep_alive_check_point</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_enabled">Non
+        Member Function <code class="computeroutput"><span class="identifier">keep_alive_enabled</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_set_on_dead_thread">Non
+        Member Function <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code></a></span></dt>
 </dl></div>
 <p>
         Includes the keep alive enabling/disabling classes and non member functions.
       </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">interthreads</span> <span class="special">{</span>
-        <span class="keyword">namespace</span> <span class="identifier">this_thread</span> <span class="special">{</span>
-            <span class="keyword">class</span> <span class="identifier">enable_keep_alive</span><span class="special">;</span>
-            <span class="keyword">class</span> <span class="identifier">disable_keep_alive</span><span class="special">;</span>
+<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">interthreads</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">this_thread</span> <span class="special">{</span>
+        <span class="keyword">class</span> <span class="identifier">enable_keep_alive</span><span class="special">;</span>
+        <span class="keyword">class</span> <span class="identifier">disable_keep_alive</span><span class="special">;</span>
 
-            <span class="keyword">void</span> <span class="identifier">keep_alive_check_point</span><span class="special">();</span>
-            <span class="keyword">bool</span> <span class="identifier">keep_alive_enabled</span><span class="special">();</span>
-            <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="special">(*</span><span class="identifier">on_dead_thread_type</span><span class="special">)(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span><span class="special">);</span>
-            <span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</span><span class="special">);</span>
-        <span class="special">}</span>
+        <span class="keyword">void</span> <span class="identifier">keep_alive_check_point</span><span class="special">();</span>
+        <span class="keyword">bool</span> <span class="identifier">keep_alive_enabled</span><span class="special">();</span>
+        <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="special">(*</span><span class="identifier">on_dead_thread_type</span><span class="special">)(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span><span class="special">);</span>
+        <span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</span><span class="special">);</span>
     <span class="special">}</span>
-    <span class="special">}</span>
-<span class="special">=======]</span>
-
-<span class="identifier">I</span></pre>
-<div class="section" lang="en">
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive"></a><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive" title="
-        class enable_keep_alive">
-        class <code class="computeroutput"><span class="identifier">enable_keep_alive</span></code></a>
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive"></a><a class="link" href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive" title="class enable_keep_alive">class
+        <code class="computeroutput"><span class="identifier">enable_keep_alive</span></code></a>
 </h4></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Destructor">
-          Destructor</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
 </dl></div>
 <p>
           Keep alive enabler.
         </p>
-<pre class="programlisting">
-    <span class="keyword">class</span> <span class="identifier">enable_keep_alive</span> <span class="special">:</span> <span class="keyword">private</span> <span class="identifier">noncopyable</span><span class="special">{</span>
-    <span class="keyword">public</span><span class="special">:</span>
-        <span class="identifier">enable_keep_alive</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">threshold</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">size_t</span> <span class="identifier">tap</span><span class="special">=</span><span class="number">1</span><span class="special">);</span>
-        <span class="special">~</span><span class="identifier">enable_keep_alive</span><span class="special">();</span>
-    <span class="special">};</span>
-<span class="identifier">alive</span></pre>
-<div class="section" lang="en">
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">enable_keep_alive</span> <span class="special">:</span> <span class="keyword">private</span> <span class="identifier">noncopyable</span><span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">enable_keep_alive</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">threshold</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">size_t</span> <span class="identifier">tap</span><span class="special">=</span><span class="number">1</span><span class="special">);</span>
+    <span class="special">~</span><span class="identifier">enable_keep_alive</span><span class="special">();</span>
+<span class="special">};</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Constructor"></a><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Constructor" title="
-          Constructor">
-          Constructor</a>
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Constructor"></a><a class="link" href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Constructor" title="Constructor">Constructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-<span class="identifier">enable_keep_alive</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">threshold</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">size_t</span> <span class="identifier">tap</span><span class="special">=</span><span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">enable_keep_alive</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">threshold</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">size_t</span> <span class="identifier">tap</span><span class="special">=</span><span class="number">1</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>
-                Enable the keep alive mechanism on this thread of execution.
-              </p></dd>
+                  Enable the keep alive mechanism on this thread of execution.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Destructor"></a><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Destructor" title="
-          Destructor">
-          Destructor</a>
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Destructor"></a><a class="link" href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.enable_keep_alive.keep_alive_enable_keep_alive_Destructor" title="Destructor">Destructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-        <span class="special">~</span><span class="identifier">enable_keep_alive</span><span class="special">();</span>
-<span class="identifier">t</span></pre>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">enable_keep_alive</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>
-                Restore the keep alive mechanism as it was before the constructor.
-              </p></dd>
+                  Restore the keep alive mechanism as it was before the constructor.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 </dl>
 </div>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive"></a><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive" title="
-        class disable_keep_alive">
-        class <code class="computeroutput"><span class="identifier">disable_keep_alive</span></code></a>
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive"></a><a class="link" href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive" title="class disable_keep_alive">class
+        <code class="computeroutput"><span class="identifier">disable_keep_alive</span></code></a>
 </h4></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Destructor">
-          Destructor</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
 </dl></div>
 <p>
           Keep alive disabler.
         </p>
-<pre class="programlisting">
-    <span class="keyword">class</span> <span class="identifier">disable_keep_alive</span> <span class="keyword">private</span> <span class="identifier">noncopyable</span> <span class="special">{</span>
-    <span class="keyword">public</span><span class="special">:</span>
-        <span class="identifier">disable_keep_alive</span><span class="special">();</span>
-        <span class="special">~</span><span class="identifier">disable_keep_alive</span><span class="special">();</span>
-    <span class="special">};</span>
-<span class="identifier">e</span><span class="special">><</span><span class="identifier">ph</span></pre>
-<div class="section" lang="en">
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">disable_keep_alive</span> <span class="keyword">private</span> <span class="identifier">noncopyable</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">disable_keep_alive</span><span class="special">();</span>
+    <span class="special">~</span><span class="identifier">disable_keep_alive</span><span class="special">();</span>
+<span class="special">};</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Constructor"></a><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Constructor" title="
-          Constructor">
-          Constructor</a>
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Constructor"></a><a class="link" href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Constructor" title="Constructor">Constructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">disable_keep_alive</span><span class="special">();</span>
-<span class="identifier">i</span></pre>
+<pre class="programlisting"><span class="identifier">disable_keep_alive</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>
-                Disable the keep alive mechanism on this thread of execution.
-              </p></dd>
+                  Disable the keep alive mechanism on this thread of execution.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Destructor"></a><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Destructor" title="
-          Destructor">
-          Destructor</a>
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Destructor"></a><a class="link" href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_disable_keep_alive.keep_alive_disable_keep_alive_Destructor" title="Destructor">Destructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="special">~</span><span class="identifier">disable_keep_alive</span><span class="special">();</span>
-<span class="special">:</span></pre>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">disable_keep_alive</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>
-                Restore the keep alive mechanism as it was before the constructor.
-              </p></dd>
+                  Restore the keep alive mechanism as it was before the constructor.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 </dl>
 </div>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_check_point"></a><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_check_point" title="
-        Non Member Function keep_alive_check_point()">
-        Non Member Function <code class="computeroutput"><span class="identifier">keep_alive_check_point</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_check_point"></a><a class="link" href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_check_point" title="Non Member Function keep_alive_check_point()">Non
+        Member Function <code class="computeroutput"><span class="identifier">keep_alive_check_point</span><span class="special">()</span></code></a>
 </h4></div></div></div>
 <p>
           Keep alive check point.
         </p>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">keep_alive_check_point</span><span class="special">();</span>
-#</pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">keep_alive_check_point</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>
-              States that the current thread is alive.
-            </p></dd>
+                States that the current thread is alive.
+              </p></dd>
 <dt><span class="term">Postconditions:</span></dt>
 <dd><p>
-              The thread is alive.
-            </p></dd>
+                The thread is alive.
+              </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-              Nothing
-            </p></dd>
+                Nothing
+              </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_enabled"></a><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_enabled" title="
-        Non Member Function keep_alive_enabled()">
-        Non Member Function <code class="computeroutput"><span class="identifier">keep_alive_enabled</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_enabled"></a><a class="link" href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_enabled" title="Non Member Function keep_alive_enabled()">Non
+        Member Function <code class="computeroutput"><span class="identifier">keep_alive_enabled</span><span class="special">()</span></code></a>
 </h4></div></div></div>
 <p>
           Keep alive query.
         </p>
-<pre class="programlisting">
-    <span class="keyword">bool</span> <span class="identifier">keep_alive_enabled</span><span class="special">();</span>
-<span class="identifier">a</span></pre>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">keep_alive_enabled</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>
-              States if the keep alive mechanism is enabled on this thread.
-            </p></dd>
+                States if the keep alive mechanism is enabled on this thread.
+              </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-              Nothing
-            </p></dd>
+                Nothing
+              </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_set_on_dead_thread"></a><a href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_set_on_dead_thread" title="
-        Non Member Function set_on_dead_thread()">
-        Non Member Function <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_set_on_dead_thread"></a><a class="link" href="keep_alive_file_hpp.html#toward_boost_interthreads.reference.keep_alive_file_hpp.keep_alive_keep_alive_set_on_dead_thread" title="Non Member Function set_on_dead_thread()">Non
+        Member Function <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code></a>
 </h4></div></div></div>
 <p>
           Keep alive on dead thread action setting.
         </p>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</span><span class="special">);</span>
-<span class="identifier">o</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</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>
-              Modifies the action to be done when a this thread is declared dead.
-            </p></dd>
+                Modifies the action to be done when a this thread is declared dead.
+              </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-              Nothing
-            </p></dd>
+                Nothing
+              </p></dd>
 </dl>
 </div>
 </div>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/set_once_hpp.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/set_once_hpp.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/set_once_hpp.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,17 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title> Header
-      <boost/interthreads/set_once.hpp></title>
+<title>Header <boost/interthreads/set_once.hpp></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.InterThreads">
-<link rel="up" href="../reference.html" title=" Reference">
-<link rel="prev" href="keep_alive_file_hpp.html" title="
-      Header <boost/interthreads/thread_keep_alive.hpp>">
-<link rel="next" href="thread_tuple_hpp.html" title="
-      Header <boost/interthreads/thread_tuple.hpp>">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="keep_alive_file_hpp.html" title="Header <boost/interthreads/thread_keep_alive.hpp>">
+<link rel="next" href="thread_tuple_hpp.html" title="Header <boost/interthreads/thread_tuple.hpp>">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,35 +22,31 @@
 <div class="spirit-nav">
 <a accesskey="p" href="keep_alive_file_hpp.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="thread_tuple_hpp.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.reference.set_once_hpp"></a><a href="set_once_hpp.html" title=" Header
-      <boost/interthreads/set_once.hpp>"> Header
+<a name="toward_boost_interthreads.reference.set_once_hpp"></a><a class="link" href="set_once_hpp.html" title="Header <boost/interthreads/set_once.hpp>">Header
       <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">set_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
 </h3></div></div></div>
-<div class="toc"><dl><dt><span class="section"><a href="set_once_hpp.html#toward_boost_interthreads.reference.set_once_hpp.set_onceclass">
-        Template Class <code class="computeroutput"><span class="identifier">set_once</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">interthreads</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">class</span> <span class="identifier">set_once</span><span class="special">;</span>
-    <span class="special">}</span>    
-    <span class="special">}</span>
-<span class="identifier">ase</span> <span class="identifier">ro</span></pre>
-<div class="section" lang="en">
+<div class="toc"><dl><dt><span class="section"><a href="set_once_hpp.html#toward_boost_interthreads.reference.set_once_hpp.set_onceclass">Template
+        Class <code class="computeroutput"><span class="identifier">set_once</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">interthreads</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">class</span> <span class="identifier">set_once</span><span class="special">;</span>
+<span class="special">}</span>    
+<span class="special">}</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.set_once_hpp.set_onceclass"></a><a href="set_once_hpp.html#toward_boost_interthreads.reference.set_once_hpp.set_onceclass" title="
-        Template Class set_once<>">
-        Template Class <code class="computeroutput"><span class="identifier">set_once</span><span class="special"><></span></code></a>
+<a name="toward_boost_interthreads.reference.set_once_hpp.set_onceclass"></a><a class="link" href="set_once_hpp.html#toward_boost_interthreads.reference.set_once_hpp.set_onceclass" title="Template Class set_once<>">Template
+        Class <code class="computeroutput"><span class="identifier">set_once</span><span class="special"><></span></code></a>
 </h4></div></div></div>
 <p>
           <code class="computeroutput"><span class="identifier">set_once</span><span class="special"><></span></code>
           is a synchonizer that allows to set a variable only once, notifying to
           the variable value to whatever is waiting for that.
         </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>
+<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">class</span> <span class="identifier">set_once</span> <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
     <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">value_type</span><span class="special">;</span>
@@ -77,8 +69,7 @@
     <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">static</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">thread</span><span class="special">></span> <span class="identifier">make_thread</span><span class="special">(</span><span class="identifier">this_type</span><span class="special">&</span> <span class="identifier">once</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">value</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">fct</span><span class="special">);</span>
 <span class="special">};</span>
-
-<span class="keyword">template</span> <span class="special"><</span><span class="identifier">type</span></pre>
+</pre>
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_decoration_hpp.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_decoration_hpp.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_decoration_hpp.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,16 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>
-      Header <boost/interthreads/thread_decoration.hpp></title>
+<title>Header <boost/interthreads/thread_decoration.hpp></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.InterThreads">
-<link rel="up" href="../reference.html" title=" Reference">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="concepts.html" title="Concepts">
-<link rel="next" href="thread_decorator_hpp.html" title="
-      Header <boost/interthreads/thread_decorator.hpp>">
+<link rel="next" href="thread_decorator_hpp.html" title="Header <boost/interthreads/thread_decorator.hpp>">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -25,38 +22,35 @@
 <div class="spirit-nav">
 <a accesskey="p" href="concepts.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="thread_decorator_hpp.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.reference.thread_decoration_hpp"></a><a href="thread_decoration_hpp.html" title="
-      Header <boost/interthreads/thread_decoration.hpp>">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decoration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+<a name="toward_boost_interthreads.reference.thread_decoration_hpp"></a><a class="link" href="thread_decoration_hpp.html" title="Header <boost/interthreads/thread_decoration.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decoration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
 </h3></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration">
-        Class <code class="computeroutput"><span class="identifier">thread_decoration</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration">Class
+        <code class="computeroutput"><span class="identifier">thread_decoration</span></code></a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup">
-          Constructor with setup</a></span></dt>
+<dt><span class="section"><a href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup">Constructor
+          with setup</a></span></dt>
 <dt><span class="section"><a href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.constructor_with_setup___cleanup">Constructor
           with setup & cleanup</a></span></dt>
 </dl></dd>
 </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">interthreads</span> <span class="special">{</span>
-        <span class="keyword">class</span> <span class="identifier">thread_decoration</span><span class="special">;</span>
-    <span class="special">}</span>
-    <span class="special">}</span>
-###<span class="identifier">a</span>#</pre>
-<div class="section" lang="en">
+<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">interthreads</span> <span class="special">{</span>
+    <span class="keyword">class</span> <span class="identifier">thread_decoration</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration"></a><a href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration" title="
-        Class thread_decoration">
-        Class <code class="computeroutput"><span class="identifier">thread_decoration</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration"></a><a class="link" href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration" title="Class thread_decoration">Class
+        <code class="computeroutput"><span class="identifier">thread_decoration</span></code></a>
 </h4></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup">
-          Constructor with setup</a></span></dt>
+<dt><span class="section"><a href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup">Constructor
+          with setup</a></span></dt>
 <dt><span class="section"><a href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.constructor_with_setup___cleanup">Constructor
           with setup & cleanup</a></span></dt>
 </dl></div>
@@ -65,26 +59,23 @@
           a couple of setup/cleanup functions chained to the last constructed decoration,
           i.e. decorations are chained between them.
         </p>
-<pre class="programlisting">
-    <span class="keyword">class</span> <span class="identifier">thread_decoration</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">Callable1</span><span class="special">></span>
-        <span class="identifier">thread_decoration</span><span class="special">(</span><span class="identifier">Callable1</span> <span class="identifier">setup</span><span class="special">);</span>
-        
-        <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable1</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">Callable2</span><span class="special">></span>
-        <span class="identifier">thread_decoration</span><span class="special">(</span><span class="identifier">Callable1</span> <span class="identifier">setup</span><span class="special">,</span> <span class="identifier">Callable2</span> <span class="identifier">cleanup</span><span class="special">);</span>
-        
-        <span class="special">~</span><span class="identifier">thread_decoration</span><span class="special">()</span> <span class="special">{</span>
-    <span class="special">};</span>
-<span class="identifier">p</span> <span class="identifier">function</span></pre>
-<div class="section" lang="en">
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">thread_decoration</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">Callable1</span><span class="special">></span>
+    <span class="identifier">thread_decoration</span><span class="special">(</span><span class="identifier">Callable1</span> <span class="identifier">setup</span><span class="special">);</span>
+    
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable1</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">Callable2</span><span class="special">></span>
+    <span class="identifier">thread_decoration</span><span class="special">(</span><span class="identifier">Callable1</span> <span class="identifier">setup</span><span class="special">,</span> <span class="identifier">Callable2</span> <span class="identifier">cleanup</span><span class="special">);</span>
+    
+    <span class="special">~</span><span class="identifier">thread_decoration</span><span class="special">()</span> <span class="special">{</span>
+<span class="special">};</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup"></a><a href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup" title="
-          Constructor with setup">
-          Constructor with setup</a>
+<a name="toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup"></a><a class="link" href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.thread_decoration_class_constructor_setup" title="Constructor with setup">Constructor
+          with setup</a>
 </h5></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable</span><span class="special">></span>
 <span class="identifier">thread_decoration</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">func</span><span class="special">);</span>
 </pre>
 <div class="variablelist">
@@ -92,30 +83,29 @@
 <dl>
 <dt><span class="term">Requires:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">Callable</span></code> is <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>. Copying <code class="computeroutput"><span class="identifier">setup</span></code> shall have no side effects,
-                and the effect of calling the copy shall be equivalent to calling
-                the original.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">Callable</span></code> is <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>. Copying <code class="computeroutput"><span class="identifier">setup</span></code> shall have no side effects,
+                  and the effect of calling the copy shall be equivalent to calling
+                  the original.
+                </p></dd>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">setup</span></code> is copied into
-                storage managed internally by the library, and that copy is invoked
-                by the <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code>
-                function.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">setup</span></code> is copied
+                  into storage managed internally by the library, and that copy is
+                  invoked by the <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code> function.
+                </p></dd>
 <dt><span class="term">Postconditions:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
-                refers to a decoration.
-              </p></dd>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a decoration.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                unsafe
-              </p></dd>
+                  unsafe
+                </p></dd>
 </dl>
 </div>
 <div class="note"><table border="0" summary="Note">
@@ -128,46 +118,47 @@
             </p></td></tr>
 </table></div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.constructor_with_setup___cleanup"></a><a href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.constructor_with_setup___cleanup" title="Constructor
-          with setup & cleanup">Constructor
+<a name="toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.constructor_with_setup___cleanup"></a><a class="link" href="thread_decoration_hpp.html#toward_boost_interthreads.reference.thread_decoration_hpp.thread_decoration.constructor_with_setup___cleanup" title="Constructor with setup & cleanup">Constructor
           with setup & cleanup</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable1</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">Callable2</span><span class="special">></span>
-    <span class="identifier">thread_decoration</span><span class="special">(</span><span class="identifier">Callable1</span> <span class="identifier">setup</span><span class="special">,</span> <span class="identifier">Callable2</span> <span class="identifier">cleanup</span><span class="special">);</span>
-<span class="identifier">de</span></pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable1</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">Callable2</span><span class="special">></span>
+<span class="identifier">thread_decoration</span><span class="special">(</span><span class="identifier">Callable1</span> <span class="identifier">setup</span><span class="special">,</span> <span class="identifier">Callable2</span> <span class="identifier">cleanup</span><span class="special">);</span>
+</pre>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term">Requires:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">Callable1</span></code> &
-                <code class="computeroutput"><span class="identifier">Callable1</span></code> are <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>. Copying <code class="computeroutput"><span class="identifier">setup</span></code> or <code class="computeroutput"><span class="identifier">cleanup</span></code>
-                shall have no side effects, and the effect of calling the copy shall
-                be equivalent to calling the original.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">Callable1</span></code> &
+                  <code class="computeroutput"><span class="identifier">Callable1</span></code> are
+                  <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
+                  Copying <code class="computeroutput"><span class="identifier">setup</span></code> or
+                  <code class="computeroutput"><span class="identifier">cleanup</span></code> shall have
+                  no side effects, and the effect of calling the copy shall be equivalent
+                  to calling the original.
+                </p></dd>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">setup</span></code> and <code class="computeroutput"><span class="identifier">cleanup</span></code> are copied into storage
-                managed internally by the library, and the <code class="computeroutput"><span class="identifier">setup</span></code>
-                copy is invoked by the <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code> function. If successful the cleanup
-                function is registered to the to the thread exit handler.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">setup</span></code> and <code class="computeroutput"><span class="identifier">cleanup</span></code> are copied into storage
+                  managed internally by the library, and the <code class="computeroutput"><span class="identifier">setup</span></code>
+                  copy is invoked by the <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code> function. If successful the cleanup
+                  function is registered to the to the thread exit handler.
+                </p></dd>
 <dt><span class="term">Postconditions:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
-                refers to a decoration.
-              </p></dd>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to a decoration.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                unsafe
-              </p></dd>
+                  unsafe
+                </p></dd>
 </dl>
 </div>
 <div class="note"><table border="0" summary="Note">
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_decorator_hpp.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_decorator_hpp.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_decorator_hpp.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,17 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>
-      Header <boost/interthreads/thread_decorator.hpp></title>
+<title>Header <boost/interthreads/thread_decorator.hpp></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.InterThreads">
-<link rel="up" href="../reference.html" title=" Reference">
-<link rel="prev" href="thread_decoration_hpp.html" title="
-      Header <boost/interthreads/thread_decoration.hpp>">
-<link rel="next" href="thread_specific_shared_ptr_hpp.html" title="
-      Header <boost/interthreads/thread_specific_shared_ptr.hpp>">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="thread_decoration_hpp.html" title="Header <boost/interthreads/thread_decoration.hpp>">
+<link rel="next" href="thread_specific_shared_ptr_hpp.html" title="Header <boost/interthreads/thread_specific_shared_ptr.hpp>">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,67 +22,60 @@
 <div class="spirit-nav">
 <a accesskey="p" href="thread_decoration_hpp.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="thread_specific_shared_ptr_hpp.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.reference.thread_decorator_hpp"></a><a href="thread_decorator_hpp.html" title="
-      Header <boost/interthreads/thread_decorator.hpp>">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp"></a><a class="link" href="thread_decorator_hpp.html" title="Header <boost/interthreads/thread_decorator.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
 </h3></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator">
-        Class <code class="computeroutput"><span class="identifier">thread_decorator</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator">Class
+        <code class="computeroutput"><span class="identifier">thread_decorator</span></code></a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructorn">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor">
-          Copy Move Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor">
-          Assign Move Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">>()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move">
-          Member Function <code class="computeroutput"><span class="identifier">move</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_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="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">()()</span></code></a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor">Copy
+          Move Constructor</a></span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor">Assign
+          Move Constructor</a></span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">>()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move">Member
+          Function <code class="computeroutput"><span class="identifier">move</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_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="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">()()</span></code></a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.decorate">
-        Non Member Function <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.decorate">Non
+        Member Function <code class="computeroutput"><span class="identifier">decorate</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">interthreads</span> <span class="special">{</span>
-        <span class="keyword">class</span> <span class="identifier">thread_decorator</span><span class="special">;</span>
-        <span class="keyword">void</span> <span class="identifier">decorate</span><span class="special">();</span>
-    <span class="special">}</span>
-    <span class="special">}</span>
-<span class="identifier">l</span>#<span class="special">>/</</span></pre>
-<div class="section" lang="en">
+<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">interthreads</span> <span class="special">{</span>
+    <span class="keyword">class</span> <span class="identifier">thread_decorator</span><span class="special">;</span>
+    <span class="keyword">void</span> <span class="identifier">decorate</span><span class="special">();</span>
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator"></a><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator" title="
-        Class thread_decorator">
-        Class <code class="computeroutput"><span class="identifier">thread_decorator</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator"></a><a class="link" href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator" title="Class thread_decorator">Class
+        <code class="computeroutput"><span class="identifier">thread_decorator</span></code></a>
 </h4></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructorn">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor">
-          Copy Move Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor">
-          Assign Move Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">>()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move">
-          Member Function <code class="computeroutput"><span class="identifier">move</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_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="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">()()</span></code></a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor">Copy
+          Move Constructor</a></span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor">Assign
+          Move Constructor</a></span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">>()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move">Member
+          Function <code class="computeroutput"><span class="identifier">move</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_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="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">()()</span></code></a></span></dt>
 </dl></div>
 <p>
           <code class="computeroutput"><span class="identifier">thread_decorator</span></code> is a functor
@@ -94,35 +83,33 @@
           which will be called only once by thread: decoration's setup are called
           before the thread function and decoration's cleanup at thread exit.
         </p>
-<pre class="programlisting">
-    <span class="keyword">class</span> <span class="identifier">thread_decorator</span> <span class="special">{</span>
-    <span class="keyword">public</span><span class="special">:</span>    
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">thread_decorator</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">class</span> <span class="identifier">Callable</span><span class="special">></span>
-        <span class="keyword">explicit</span> <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span><span class="special">&&</span> <span class="identifier">f</span><span class="special">);</span>
-        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Callable</span><span class="special">></span>
-        <span class="keyword">explicit</span> <span class="identifier">thread_decorator</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">Callable</span><span class="special">></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">Callable</span><span class="special">></span>
-        <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">f</span><span class="special">,</span> 
-            <span class="keyword">typename</span> <span class="identifier">disable_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">F</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">F</span><span class="special">></span> <span class="special">></span>
-                               <span class="special">,</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">*</span> <span class="special">>::</span><span class="identifier">type</span><span class="special">=</span><span class="number">0</span><span class="special">);</span>        
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Callable</span><span class="special">></span>
+    <span class="keyword">explicit</span> <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span><span class="special">&&</span> <span class="identifier">f</span><span class="special">);</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Callable</span><span class="special">></span>
+    <span class="keyword">explicit</span> <span class="identifier">thread_decorator</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">Callable</span><span class="special">></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">Callable</span><span class="special">></span>
+    <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">f</span><span class="special">,</span> 
+        <span class="keyword">typename</span> <span class="identifier">disable_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">F</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">F</span><span class="special">></span> <span class="special">></span>
+                           <span class="special">,</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">*</span> <span class="special">>::</span><span class="identifier">type</span><span class="special">=</span><span class="number">0</span><span class="special">);</span>        
 
-        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">,</span> <span class="special">...></span>
-        <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span><span class="special">,</span> <span class="identifier">A2</span> <span class="identifier">a2</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">Callable</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">,</span> <span class="special">...></span>
+    <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span><span class="special">,</span> <span class="identifier">A2</span> <span class="identifier">a2</span><span class="special">,</span> <span class="special">...)</span>
 
-        <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
-        
-        <span class="identifier">thread_decorator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
+    <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
+    
+    <span class="identifier">thread_decorator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
 
-        <span class="identifier">thread_decorator</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">thread_decorator</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="identifier">thread_decorator</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">thread_decorator</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span>
 
-        <span class="keyword">void</span> <span class="keyword">operator</span> <span class="special">()();</span>
+    <span class="keyword">void</span> <span class="keyword">operator</span> <span class="special">()();</span>
 
-    <span class="special">};</span>
-########<span class="identifier">a</span>#####<span class="identifier">Su</span>#<span class="identifier">A</span>
-##<span class="number">8</span><span class="identifier">iv</span>#<span class="number">8</span></pre>
+<span class="special">};</span>
+</pre>
 <p>
           Functor wrapping the user function thread to ensure that all the decorations
           are called.
@@ -133,15 +120,14 @@
           from functions. This allows the details of thread decoration to be wrapped
           in a function.
         </p>
-<pre class="programlisting">
-    <span class="identifier">thread_decorator</span> <span class="identifier">make_decorator</span><span class="special">();</span>
+<pre class="programlisting"><span class="identifier">thread_decorator</span> <span class="identifier">make_decorator</span><span class="special">();</span>
 
-    <span class="keyword">void</span> <span class="identifier">f</span><span class="special">()</span>
-    <span class="special">{</span>
-        <span class="identifier">boot</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">some_thread</span><span class="special">(</span><span class="identifier">make_decorator</span><span class="special">());</span>
-        <span class="identifier">some_thread</span><span class="special">.</span><span class="identifier">join</span><span class="special">();</span>
-    <span class="special">}</span>
-<span class="identifier">e</span><span class="special">=</span>#<span class="identifier">iden</span></pre>
+<span class="keyword">void</span> <span class="identifier">f</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="identifier">boot</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">some_thread</span><span class="special">(</span><span class="identifier">make_decorator</span><span class="special">());</span>
+    <span class="identifier">some_thread</span><span class="special">.</span><span class="identifier">join</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
 <div class="note"><table border="0" summary="Note">
 <tr>
 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/src/images/note.png"></td>
@@ -163,310 +149,290 @@
           </p>
 </td></tr>
 </table></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructor"></a><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructor" title="
-          Constructor">
-          Constructor</a>
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructor"></a><a class="link" href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructor" title="Constructor">Constructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Callable</span><span class="special">></span>
-        <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span><span class="special">&&</span> <span class="identifier">func</span><span class="special">);</span>
-        <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable</span><span class="special">></span>
-        <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">func</span><span class="special">);</span>        
-<span class="identifier">ignm</span></pre>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Callable</span><span class="special">></span>
+<span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span><span class="special">&&</span> <span class="identifier">func</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable</span><span class="special">></span>
+<span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">func</span><span class="special">);</span>        
+</pre>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term">Template parameters:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">Callable</span></code> must by
-                <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">Callable</span></code> must by
+                  <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
+                </p></dd>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">func</span></code> is copied into
-                storage managed internally by the library, and that copy will be
-                invoked after the operator() function when the decorate is used as
-                Callable of a newly-created thread of execution.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">func</span></code> is copied
+                  into storage managed internally by the library, and that copy will
+                  be invoked after the operator() function when the decorate is used
+                  as Callable of a newly-created thread of execution.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe
-              </p></dd>
+                  safe
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructorn"></a><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructorn" title="
-          Constructor">
-          Constructor</a>
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructorn"></a><a class="link" href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_constructorn" title="Constructor">Constructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">,</span> <span class="special">...></span>
-        <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">func</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span><span class="special">,</span> <span class="identifier">A2</span> <span class="identifier">a2</span><span class="special">,</span> <span class="special">...)</span>
-<span class="identifier">e</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Callable</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">,</span> <span class="special">...></span>
+<span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">Callable</span> <span class="identifier">func</span><span class="special">,</span> <span class="identifier">A1</span> <span class="identifier">a1</span><span class="special">,</span> <span class="identifier">A2</span> <span class="identifier">a2</span><span class="special">,</span> <span class="special">...)</span>
+</pre>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term">Template parameters:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">Callable</span></code> must by
-                <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">Callable</span></code> must by
+                  <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
+                </p></dd>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">func</span></code> is copied into
-                storage managed internally by the library, and that copy will be
-                invoked after the operator() function when the decorate is used as
-                Callable of a newly-created thread of execution.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">func</span></code> is copied
+                  into storage managed internally by the library, and that copy will
+                  be invoked after the operator() function when the decorate is used
+                  as Callable of a newly-created thread of execution.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe
-              </p></dd>
+                  safe
+                </p></dd>
 <dt><span class="term">Limitations:</span></dt>
 <dd><p>
-                The current implementation defines overloads up to four parameters.
-              </p></dd>
+                  The current implementation defines overloads up to four parameters.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor"></a><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor" title="
-          Copy Move Constructor">
-          Copy Move Constructor</a>
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor"></a><a class="link" href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_move_constructor" title="Copy Move Constructor">Copy
+          Move Constructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-        <span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
-        <span class="identifier">thread_decorator</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">thread_decorator</span><span class="special">></span> <span class="identifier">other</span><span class="special">)</span> <span class="special">{</span>
-<span class="identifier">se</span></pre>
+<pre class="programlisting"><span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
+<span class="identifier">thread_decorator</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">thread_decorator</span><span class="special">></span> <span class="identifier">other</span><span class="special">)</span> <span class="special">{</span>
+</pre>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term">Template parameters:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">Callable</span></code> must by
-                <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">Callable</span></code> must by
+                  <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
+                </p></dd>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">func</span></code> is copied into
-                storage managed internally by the library, and that copy will be
-                invoked after the operator() function when the decorate is used as
-                Callable of a newly-created thread of execution.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">func</span></code> is copied
+                  into storage managed internally by the library, and that copy will
+                  be invoked after the operator() function when the decorate is used
+                  as Callable of a newly-created thread of execution.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe
-              </p></dd>
+                  safe
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor"></a><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor" title="
-          Assign Move Constructor">
-          Assign Move Constructor</a>
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor"></a><a class="link" href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_decorate_copy_constructor" title="Assign Move Constructor">Assign
+          Move Constructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-        <span class="identifier">thread_decorator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
-        <span class="identifier">thread_decorator</span><span class="special">&</span> <span class="keyword">operator</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">thread_decorator</span><span class="special">></span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span>
-<span class="identifier">so</span></pre>
+<pre class="programlisting"><span class="identifier">thread_decorator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">other</span><span class="special">);</span>
+<span class="identifier">thread_decorator</span><span class="special">&</span> <span class="keyword">operator</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">thread_decorator</span><span class="special">></span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span>
+</pre>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term">Requires:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">Callable</span></code> must by
-                <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">Callable</span></code> must by
+                  <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>.
+                </p></dd>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">func</span></code> is copied into
-                storage managed internally by the library, and that copy will be
-                invoked after the operator() function when the decorate is used as
-                Callable of a newly-created thread of execution.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">func</span></code> is copied
+                  into storage managed internally by the library, and that copy will
+                  be invoked after the operator() function when the decorate is used
+                  as Callable of a newly-created thread of execution.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                a reference to <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
-              </p></dd>
+                  a reference to <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>
+                  Nothing.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                neutral
-              </p></dd>
+                  neutral
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion"></a><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion" title="
-          Member Function operator detail::thread_move_t<thread_decorator>()">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">>()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion"></a><a class="link" href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_conversion" title="Member Function operator detail::thread_move_t<thread_decorator>()">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">>()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-        <span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">>();</span>
-<span class="identifier">a</span></pre>
+<pre class="programlisting"><span class="keyword">operator</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</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>
-                helper for move semantics emulation.
-              </p></dd>
+                  helper for move semantics emulation.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                the move form <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
-              </p></dd>
+                  the move form <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>
+                  Nothing.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                neutral
-              </p></dd>
+                  neutral
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move"></a><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move" title="
-          Member Function move()">
-          Member Function <code class="computeroutput"><span class="identifier">move</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move"></a><a class="link" href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_move" title="Member Function move()">Member
+          Function <code class="computeroutput"><span class="identifier">move</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-        <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">></span> <span class="identifier">move</span><span class="special">()</span> <span class="special">{</span>
-        <span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">move</span><span class="special">();</span>
-<span class="identifier">ra</span></pre>
+<pre class="programlisting"><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_move_t</span><span class="special"><</span><span class="identifier">thread_decorator</span><span class="special">></span> <span class="identifier">move</span><span class="special">()</span> <span class="special">{</span>
+<span class="identifier">thread_decorator</span><span class="special">&&</span> <span class="identifier">move</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>
-                Move *this to the caller.
-              </p></dd>
+                  Move *this to the caller.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                the move form <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
-              </p></dd>
+                  the move form <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>
+                  Nothing.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                neutral
-              </p></dd>
+                  neutral
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_swap"></a><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_swap" title="
-          Member Function swap()">
-          Member Function <code class="computeroutput"><span class="identifier">swap</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_swap"></a><a class="link" href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_swap" title="Member Function swap()">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">thread_decorator</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span>
-#</pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">thread_decorator</span><span class="special">&</span> <span class="identifier">x</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>
-              </p></dd>
+<dd></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing.
-              </p></dd>
+                  Nothing.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                neutral
-              </p></dd>
+                  neutral
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f"></a><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f" title="
-          Member Function operator()()">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">()()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f"></a><a class="link" href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.thread_decorator.decorator_thread_decoration_operator_f" title="Member Function operator()()">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">()()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()();</span>
-<span class="identifier">t</span></pre>
+<pre class="programlisting"><span class="keyword">void</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>
-                Functor operator
-              </p></dd>
+                  Functor operator
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Any exception thrown by the decorations or the user function.
-              </p></dd>
+                  Any exception thrown by the decorations or the user function.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                unsafe - depends on the decorations construction/destruction.
-              </p></dd>
+                  unsafe - depends on the decorations construction/destruction.
+                </p></dd>
 </dl>
 </div>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.thread_decorator_hpp.decorate"></a><a href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.decorate" title="
-        Non Member Function decorate()">
-        Non Member Function <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_decorator_hpp.decorate"></a><a class="link" href="thread_decorator_hpp.html#toward_boost_interthreads.reference.thread_decorator_hpp.decorate" title="Non Member Function decorate()">Non
+        Member Function <code class="computeroutput"><span class="identifier">decorate</span><span class="special">()</span></code></a>
 </h4></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">decorate</span><span class="special">();</span>
-#</pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">decorate</span><span class="special">();</span>
+</pre>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term">Requires:</span></dt>
 <dd><p>
-              <code class="computeroutput"><span class="identifier">Callable</span></code> is <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>. Copying <code class="computeroutput"><span class="identifier">f</span></code> shall have no side effects, and
-              the effect of calling the copy shall be equivalent to calling the original.
-            </p></dd>
+                <code class="computeroutput"><span class="identifier">Callable</span></code> is <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>. Copying <code class="computeroutput"><span class="identifier">f</span></code> shall have no side effects, and
+                the effect of calling the copy shall be equivalent to calling the
+                original.
+              </p></dd>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-              Calls every declared decoration using the thread_decoration class.
-            </p></dd>
+                Calls every declared decoration using the thread_decoration class.
+              </p></dd>
 <dt><span class="term">Postconditions:</span></dt>
 <dd><p>
-              All the decorations have been called.
-            </p></dd>
+                All the decorations have been called.
+              </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-              Any exception thrown by the decorations.
-            </p></dd>
+                Any exception thrown by the decorations.
+              </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-              unsafe - depends on the decorations construction/destruction.
-            </p></dd>
+                unsafe - depends on the decorations construction/destruction.
+              </p></dd>
 </dl>
 </div>
 </div>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_group_once_hpp.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_group_once_hpp.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_group_once_hpp.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,15 +1,12 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>
-      Header <boost/interthreads/thread_group_once.hpp></title>
+<title>Header <boost/interthreads/thread_group_once.hpp></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.InterThreads">
-<link rel="up" href="../reference.html" title=" Reference">
-<link rel="prev" href="thread_tuple_once_hpp.html" title="
-      Header <boost/interthreads/thread_tuple_once.hpp>">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="thread_tuple_once_hpp.html" title="Header <boost/interthreads/thread_tuple_once.hpp>">
 <link rel="next" href="../examples.html" title="Examples">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -25,433 +22,400 @@
 <div class="spirit-nav">
 <a accesskey="p" href="thread_tuple_once_hpp.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp"></a><a href="thread_group_once_hpp.html" title="
-      Header <boost/interthreads/thread_group_once.hpp>">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_group_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp"></a><a class="link" href="thread_group_once_hpp.html" title="Header <boost/interthreads/thread_group_once.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_group_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
 </h3></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class">
-        Template Class <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class">Template
+        Class <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><></span></code></a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_callable_constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_destructor">
-          Destructor</a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable">
-          Member function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join">
-          Member function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join">
-          Member function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt">
-          Member function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt">
-          Member function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all">
-          Member function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.member_function__interrupt_all___">Member
           function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size">
-          Member function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_make_thread_group_once">
-        Non Member Function <code class="computeroutput"><span class="identifier">make_thread_group_once</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_make_thread_group_once">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_group_once</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">interthreads</span> <span class="special">{</span>
+<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">interthreads</span> <span class="special">{</span>
 
-        <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">N</span><span class="special">></span>
-        <span class="keyword">class</span> <span class="identifier">thread_group</span><span class="special">;</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">N</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">thread_group</span><span class="special">;</span>
 
-    <span class="special">}</span>
-    <span class="special">}</span>
-<span class="identifier">hrase</span><span class="special">><</span><span class="identifier">p</span></pre>
-<div class="section" lang="en">
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class" title="
-        Template Class thread_group_once<>">
-        Template Class <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><></span></code></a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class" title="Template Class thread_group_once<>">Template
+        Class <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><></span></code></a>
 </h4></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_callable_constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_destructor">
-          Destructor</a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable">
-          Member function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join">
-          Member function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join">
-          Member function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt">
-          Member function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt">
-          Member function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all">
-          Member function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.member_function__interrupt_all___">Member
           function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size">
-          Member function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
 </dl></div>
 <p>
           <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><></span></code>
           is an extension of the boost::thread_group which allows to join the thread
           finishing the first, using for that the set_once synchronizer.
         </p>
-<pre class="programlisting">
-    <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">n</span><span class="special">></span>
-    <span class="keyword">class</span> <span class="identifier">thread_group_once</span> <span class="special">{</span>
-    <span class="keyword">public</span><span class="special">:</span>
-        <span class="identifier">thread_group_once</span><span class="special">();</span>
-        <span class="special">~</span><span class="identifier">thread_group_once</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="special">*</span> <span class="identifier">create_thread</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">threadfunc</span><span class="special">);</span>
-        <span class="keyword">void</span> <span class="identifier">remove_thread</span><span class="special">(</span><span class="identifier">thread</span><span class="special">*</span> <span class="identifier">thrd</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">n</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">thread_group_once</span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">thread_group_once</span><span class="special">();</span>
+    <span class="special">~</span><span class="identifier">thread_group_once</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="special">*</span> <span class="identifier">create_thread</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">threadfunc</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">remove_thread</span><span class="special">(</span><span class="identifier">thread</span><span class="special">*</span> <span class="identifier">thrd</span><span class="special">);</span>
 
-        <span class="comment">// move support
-</span>        <span class="identifier">thread_group_once</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">x</span><span class="special">);</span>
-        <span class="identifier">thread_group_once</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">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</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">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>>();</span>
-        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">move</span><span class="special">();</span>
+    <span class="comment">// move support
+</span>    <span class="identifier">thread_group_once</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="identifier">thread_group_once</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">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</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">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>>();</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</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">thread_group_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>&</span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">thread_group_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>&</span> <span class="identifier">x</span><span class="special">);</span>
 
-        <span class="keyword">bool</span> <span class="identifier">joinables</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
-        
-        <span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
-        <span class="keyword">bool</span> <span class="identifier">join_all_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_all_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">bool</span> <span class="identifier">joinables</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    
+    <span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">join_all_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_all_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">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</span><span class="special">();</span>
-        <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</span><span class="special">();</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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">void</span> <span class="identifier">detach_all</span><span class="special">();</span>
+    <span class="keyword">void</span> <span class="identifier">detach_all</span><span class="special">();</span>
 
-        <span class="keyword">void</span> <span class="identifier">interrupt_all</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">void</span> <span class="identifier">interrupt_all</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="identifier">size_t</span> <span class="identifier">size</span><span class="special">();</span>
-        
-        <span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">);</span>
-    <span class="special">};</span>    
-    <span class="special">}</span>
-    <span class="special">}</span>
-#######<span class="identifier">a</span>####<span class="identifier">X8v</span>#<span class="identifier">X8v</span>############<span class="identifier">a</span>####<span class="identifier">p8v</span>#<span class="identifier">p8v</span></pre>
-<div class="section" lang="en">
+    <span class="identifier">size_t</span> <span class="identifier">size</span><span class="special">();</span>
+    
+    <span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">);</span>
+<span class="special">};</span>    
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_callable_constructor"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_callable_constructor" title="
-          Constructor">
-          Constructor</a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_callable_constructor"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_callable_constructor" title="Constructor">Constructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">thread_group_once</span><span class="special">();</span>
-<span class="identifier">h</span></pre>
+<pre class="programlisting"><span class="identifier">thread_group_once</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>
-                creates a thread group.
-              </p></dd>
+                  creates a thread group.
+                </p></dd>
 <dt><span class="term">Postconditions:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
-                refers to the newly created group of threads of execution.
-              </p></dd>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to the newly created group of threads 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_resource_error</span></code> if an error
-                occurs.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_resource_error</span></code> if an error
+                  occurs.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_destructor"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_destructor" title="
-          Destructor">
-          Destructor</a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_destructor"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_destructor" title="Destructor">Destructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="special">~</span><span class="identifier">thread_group_once</span><span class="special">();</span>
-#</pre>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">thread_group_once</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 *this have associateds thread of execution, calls detach() on
-                them. Destroys *this.
-              </p></dd>
+                  If *this have associateds thread of execution, calls detach() on
+                  them. Destroys *this.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable" title="
-          Member function joinables()">
-          Member function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_joinable" title="Member function joinables()">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">bool</span> <span class="identifier">joinables</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
-<span class="identifier">s</span></pre>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">joinables</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 threads of execution, <code class="computeroutput"><span class="keyword">false</span></code>
-                otherwise.
-              </p></dd>
+                  <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 threads 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>
+                  Nothing
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join" title="
-          Member function join_all()">
-          Member function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_join" title="Member function join_all()">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
-<span class="identifier">e</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join_all</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>
-                Call <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the group.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the group.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the group has terminated.
-              </p></dd>
+                  Every thread in the group has terminated.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined interruption
-                points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join" title="
-          Member function join_all_until()">
-          Member function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_timed_join" title="Member function join_all_until()">Member
+          function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">bool</span> <span class="identifier">join_all_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_all_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">rol</span></pre>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">join_all_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_all_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>
-                Call <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the group.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code> on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code>
+                  object in the group.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the group has terminated.
-              </p></dd>
+                  Every thread in the group has terminated.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                true if joined.
-              </p></dd>
+                  true if joined.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
-                interruption points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt" title="
-          Member function join_any()">
-          Member function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.join_first_then_interrupt" title="Member function join_any()">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</span><span class="special">();</span>
-<span class="number">0</span></pre>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</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>
-                Call <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code>
-                and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code>
+                  and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the group has terminated.
-              </p></dd>
+                  Every thread in the group has terminated.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">join_any</span></code> is
-                one of the predefined interruption points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">join_any</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">join_any</span></code>
+                  is one of the predefined interruption points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">join_any</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt" title="
-          Member function join_any_until()">
-          Member function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.timed_join_first_then_interrupt" title="Member function join_any_until()">Member
+          function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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">de</span><span class="special">></span>#<span class="number">1</span></pre>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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>
-                Call <code class="computeroutput"><span class="identifier">get_until</span><span class="special">()</span></code>
-                and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">get_until</span><span class="special">()</span></code> and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the group has terminated.
-              </p></dd>
+                  Every thread in the group has terminated.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                true if joined.
-              </p></dd>
+                  true if joined.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
-                interruption points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_group_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all" title="
-          Member function detach_all()">
-          Member function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.detach_all" title="Member function detach_all()">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">detach_all</span><span class="special">();</span>
-<span class="special"><</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">detach_all</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>
-                Call <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the group.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the group.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.member_function__interrupt_all___"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.member_function__interrupt_all___" title="Member
-          function interrupt_all()">Member
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.member_function__interrupt_all___"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.member_function__interrupt_all___" title="Member function interrupt_all()">Member
           function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">interrupt_all</span><span class="special">();</span>
-<span class="identifier">a</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">interrupt_all</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>
-                Call <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">interrupt</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the group.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">interrupt</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the group.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size" title="
-          Member function size()">
-          Member function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_class.thread_group_once_size" title="Member function size()">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">size</span><span class="special">();</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">size</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 number of threads in the group.
-              </p></dd>
+                  The number of threads in the group.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing.
-              </p></dd>
+                  Nothing.
+                </p></dd>
 </dl>
 </div>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_make_thread_group_once"></a><a href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_make_thread_group_once" title="
-        Non Member Function make_thread_group_once()">
-        Non Member Function <code class="computeroutput"><span class="identifier">make_thread_group_once</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_make_thread_group_once"></a><a class="link" href="thread_group_once_hpp.html#toward_boost_interthreads.reference.thread_group_once_hpp.thread_group_once_make_thread_group_once" title="Non Member Function make_thread_group_once()">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_group_once</span><span class="special">()</span></code></a>
 </h4></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
-    <span class="identifier">thread_group_once</span> <span class="identifier">make_thread_group_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</span><span class="special">);</span>
-<span class="identifier">e</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+<span class="identifier">thread_group_once</span> <span class="identifier">make_thread_group_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</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>
-              makes a new thread_group_once<>.
-            </p></dd>
+                makes a new thread_group_once<>.
+              </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-              the created thread group.
-            </p></dd>
+                the created thread group.
+              </p></dd>
 </dl>
 </div>
 </div>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_specific_shared_ptr_hpp.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_specific_shared_ptr_hpp.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_specific_shared_ptr_hpp.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,17 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>
-      Header <boost/interthreads/thread_specific_shared_ptr.hpp></title>
+<title>Header <boost/interthreads/thread_specific_shared_ptr.hpp></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.InterThreads">
-<link rel="up" href="../reference.html" title=" Reference">
-<link rel="prev" href="thread_decorator_hpp.html" title="
-      Header <boost/interthreads/thread_decorator.hpp>">
-<link rel="next" href="keep_alive_file_hpp.html" title="
-      Header <boost/interthreads/thread_keep_alive.hpp>">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="thread_decorator_hpp.html" title="Header <boost/interthreads/thread_decorator.hpp>">
+<link rel="next" href="keep_alive_file_hpp.html" title="Header <boost/interthreads/thread_keep_alive.hpp>">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,256 +22,239 @@
 <div class="spirit-nav">
 <a accesskey="p" href="thread_decorator_hpp.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="keep_alive_file_hpp.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp"></a><a href="thread_specific_shared_ptr_hpp.html" title="
-      Header <boost/interthreads/thread_specific_shared_ptr.hpp>">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_specific_shared_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp"></a><a class="link" href="thread_specific_shared_ptr_hpp.html" title="Header <boost/interthreads/thread_specific_shared_ptr.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_specific_shared_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
 </h3></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr">
-        Template Class <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr">Template
+        Class <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code></a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters">
-          Template parameters</a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types">
-          Public types</a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_default_constructor">
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters">Template
+          parameters</a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types">Public
+          types</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup">Cleanup
           Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup">
-          Cleanup Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_destructor">
-          Destructor</a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get">
-          Member Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset">
-          Member Function <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get">
-          Member Function <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex">
-          Member Function <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map">
-          Member Function <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get">Member
+          Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset">Member
+          Function <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get">Member
+          Function <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex">Member
+          Function <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map">Member
+          Function <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code></a></span></dt>
 </dl></dd>
 </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">interthreads</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">class</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special">;</span>
-    
-    <span class="special">}</span>
-    <span class="special">}</span>
-<span class="special">=</span><span class="string">"bold"</span><span class="special">></span></pre>
-<div class="section" lang="en">
+<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">interthreads</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">class</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special">;</span>
+
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr" title="
-        Template Class thread_specific_shared_ptr<>">
-        Template Class <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code></a>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr" title="Template Class thread_specific_shared_ptr<>">Template
+        Class <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code></a>
 </h4></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters">
-          Template parameters</a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types">
-          Public types</a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_default_constructor">
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters">Template
+          parameters</a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types">Public
+          types</a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup">Cleanup
           Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup">
-          Cleanup Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_destructor">
-          Destructor</a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get">
-          Member Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset">
-          Member Function <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get">
-          Member Function <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex">
-          Member Function <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map">
-          Member Function <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get">Member
+          Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset">Member
+          Function <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get">Member
+          Function <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex">Member
+          Function <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map">Member
+          Function <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code></a></span></dt>
 </dl></div>
 <p>
           <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code>
           is an extension of the thread_specific_ptr providing access to the thread
           specific context from other threads.
         </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">class</span> <span class="identifier">thread_specific_shared_ptr</span> <span class="special">:</span> <span class="keyword">private</span> <span class="identifier">noncopyable</span>
-    <span class="special">{</span>
-    <span class="keyword">public</span><span class="special">:</span>
-        <span class="keyword">typedef</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>               <span class="identifier">shared_ptr_type</span><span class="special">;</span>
-        <span class="keyword">typedef</span> <span class="char">'implementation defined'</span>    <span class="identifier">map_type</span><span class="special">;</span>
-        <span class="keyword">typedef</span> <span class="char">'implementation defined'</span>    <span class="identifier">mutex_type</span><span class="special">;</span>
-        <span class="keyword">typedef</span> <span class="char">'implementation defined'</span>    <span class="identifier">lock_type</span><span class="special">;</span>
+<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">class</span> <span class="identifier">thread_specific_shared_ptr</span> <span class="special">:</span> <span class="keyword">private</span> <span class="identifier">noncopyable</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>               <span class="identifier">shared_ptr_type</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="char">'implementation defined'</span>    <span class="identifier">map_type</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="char">'implementation defined'</span>    <span class="identifier">mutex_type</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="char">'implementation defined'</span>    <span class="identifier">lock_type</span><span class="special">;</span>
 
-        <span class="identifier">thread_specific_shared_ptr</span><span class="special">();</span>
-        <span class="keyword">explicit</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special">(</span><span class="keyword">void</span> <span class="special">(*</span><span class="identifier">cleanup_</span><span class="special">)(</span><span class="identifier">shared_ptr_type</span><span class="special">));</span>
-        <span class="special">~</span><span class="identifier">thread_specific_shared_ptr</span><span class="special">();</span>
+    <span class="identifier">thread_specific_shared_ptr</span><span class="special">();</span>
+    <span class="keyword">explicit</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special">(</span><span class="keyword">void</span> <span class="special">(*</span><span class="identifier">cleanup_</span><span class="special">)(</span><span class="identifier">shared_ptr_type</span><span class="special">));</span>
+    <span class="special">~</span><span class="identifier">thread_specific_shared_ptr</span><span class="special">();</span>
 
-        <span class="identifier">T</span><span class="special">*</span>                      <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</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">const</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">const</span><span class="special">;</span>
-        <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">();</span>
-        <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">></span> 
-        <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">);</span>
-        <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">></span> 
-        <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">d</span><span class="special">);</span>
-        <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> 
-        <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</span><span class="special">);</span>
-        
-        <span class="identifier">mutex_type</span><span class="special">&</span>             <span class="identifier">get_mutex</span><span class="special">();</span>
-        <span class="keyword">const</span> <span class="identifier">map_type</span><span class="special">&</span>         <span class="identifier">get_map</span><span class="special">(</span><span class="identifier">lock_type</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
-        <span class="identifier">shared_ptr_type</span>   <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
-        <span class="identifier">shared_ptr_type</span>   <span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
-    <span class="keyword">private</span><span class="special">:</span>        
-        <span class="identifier">shared_ptr_type</span>         <span class="identifier">get_shared_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
-    <span class="special">};</span>
-<span class="identifier">ad_specific_shared_ptr_hpp</span> <span class="identifier">Head</span></pre>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters" title="
-          Template parameters">
-          Template parameters</a>
+    <span class="identifier">T</span><span class="special">*</span>                      <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</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">const</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">const</span><span class="special">;</span>
+    <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">();</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">></span> 
+    <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">);</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">></span> 
+    <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">d</span><span class="special">);</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> 
+    <span class="keyword">void</span>                    <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</span><span class="special">);</span>
+    
+    <span class="identifier">mutex_type</span><span class="special">&</span>             <span class="identifier">get_mutex</span><span class="special">();</span>
+    <span class="keyword">const</span> <span class="identifier">map_type</span><span class="special">&</span>         <span class="identifier">get_map</span><span class="special">(</span><span class="identifier">lock_type</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="identifier">shared_ptr_type</span>   <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="identifier">shared_ptr_type</span>   <span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="keyword">private</span><span class="special">:</span>        
+    <span class="identifier">shared_ptr_type</span>         <span class="identifier">get_shared_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_parameters" title="Template parameters">Template
+          parameters</a>
 </h5></div></div></div>
 <p>
             <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> is instantiated with the following
             types:
           </p>
-<div class="itemizedlist"><ul type="disc"><li>
-              T The type of the pointeed object
-            </li></ul></div>
-</div>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types" title="
-          Public types">
-          Public types</a>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                T The type of the pointeed object
+              </li></ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reference_types" title="Public types">Public
+          types</a>
 </h5></div></div></div>
 <p>
             <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> defines the following types:
           </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
-<span class="bold"><strong><code class="computeroutput"><span class="identifier">shared_ptr_type</span></code></strong></span>
-              The shared pointed type.
-            </li>
-<li>
-<span class="bold"><strong><code class="computeroutput"><span class="identifier">map_type</span></code></strong></span>
-              The mapping type from <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code>
-              to <code class="computeroutput"><span class="identifier">shared_ptr_type</span></code>
-</li>
-<li>
-<span class="bold"><strong><code class="computeroutput"><span class="identifier">mutex_type</span></code></strong></span>
-              The protecting mutext type follwing the Lockable Concept
-            </li>
-<li>
-<span class="bold"><strong><code class="computeroutput"><span class="identifier">lock_type</span></code></strong></span>
-              The lock used to get the map follwing the unique_lock subjacent Concept
-            </li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+                <span class="bold"><strong><code class="computeroutput"><span class="identifier">shared_ptr_type</span></code></strong></span>
+                The shared pointed type.
+              </li>
+<li class="listitem">
+                <span class="bold"><strong><code class="computeroutput"><span class="identifier">map_type</span></code></strong></span>
+                The mapping type from <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code>
+                to <code class="computeroutput"><span class="identifier">shared_ptr_type</span></code>
+              </li>
+<li class="listitem">
+                <span class="bold"><strong><code class="computeroutput"><span class="identifier">mutex_type</span></code></strong></span>
+                The protecting mutext type follwing the Lockable Concept
+              </li>
+<li class="listitem">
+                <span class="bold"><strong><code class="computeroutput"><span class="identifier">lock_type</span></code></strong></span>
+                The lock used to get the map follwing the unique_lock subjacent Concept
+              </li>
 </ul></div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_default_constructor"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_default_constructor" title="
-          Constructor">
-          Constructor</a>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_default_constructor"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_default_constructor" title="Constructor">Constructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">thread_specific_shared_ptr</span><span class="special">();</span>
-<span class="identifier">o</span></pre>
+<pre class="programlisting"><span class="identifier">thread_specific_shared_ptr</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>
-                Construct a <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> object for storing a pointer
-                to an object of type <code class="computeroutput"><span class="identifier">T</span></code>
-                specific to each thread.
-              </p></dd>
+                  Construct a <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> object for storing a pointer
+                  to an object of type <code class="computeroutput"><span class="identifier">T</span></code>
+                  specific to each thread.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe.
-              </p></dd>
+                  safe.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup" title="
-          Cleanup Constructor">
-          Cleanup Constructor</a>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_constructor_with_custom_cleanup" title="Cleanup Constructor">Cleanup
+          Constructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">explicit</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special">(</span><span class="keyword">void</span> <span class="special">(*</span><span class="identifier">cleanup_</span><span class="special">)(</span><span class="identifier">shared_ptr_type</span><span class="special">));</span>
-#</pre>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special">(</span><span class="keyword">void</span> <span class="special">(*</span><span class="identifier">cleanup_</span><span class="special">)(</span><span class="identifier">shared_ptr_type</span><span class="special">));</span>
+</pre>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term">Requires:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">cleanup_function</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">())</span></code> does not throw any exceptions.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">cleanup_function</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">())</span></code> does not throw any exceptions.
+                </p></dd>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-                Construct a <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> object for storing a pointer
-                to an object of type <code class="computeroutput"><span class="identifier">T</span></code>
-                specific to each thread. The supplied <code class="computeroutput"><span class="identifier">cleanup_function</span></code>
-                will be called at thread exit.
-              </p></dd>
+                  Construct a <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> object for storing a pointer
+                  to an object of type <code class="computeroutput"><span class="identifier">T</span></code>
+                  specific to each thread. The supplied <code class="computeroutput"><span class="identifier">cleanup_function</span></code>
+                  will be called at thread exit.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe.
-              </p></dd>
+                  safe.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_destructor"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_destructor" title="
-          Destructor">
-          Destructor</a>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_destructor"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_destructor" title="Destructor">Destructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="special">~</span><span class="identifier">thread_specific_shared_ptr</span><span class="special">();</span>
-#</pre>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">thread_specific_shared_ptr</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>
-                Remove from the static map the current thread::id and destroys <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
-              </p></dd>
+                  Remove from the static map the current thread::id and 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>
+                  Nothing.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe.
-              </p></dd>
+                  safe.
+                </p></dd>
 </dl>
 </div>
 <div class="note"><table border="0" summary="Note">
@@ -291,30 +270,28 @@
             </p></td></tr>
 </table></div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get" title="
-          Member Function get()">
-          Member Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code></a>
-</h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">shared_ptr_type</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
-<span class="identifier">u</span></pre>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_get" title="Member Function get()">Member
+          Function <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">shared_ptr_type</span> <span class="identifier">get</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>
-                The pointer associated with the current thread.
-              </p></dd>
+                  The pointer associated with the current thread.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing.
-              </p></dd>
+                  Nothing.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe.
-              </p></dd>
+                  safe.
+                </p></dd>
 </dl>
 </div>
 <div class="note"><table border="0" summary="Note">
@@ -328,170 +305,161 @@
             </p></td></tr>
 </table></div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow" title="
-          Member Function operator->()">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code></a>
-</h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">T</span><span class="special">*</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>        
-<span class="identifier">e</span></pre>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_arrow" title="Member Function operator->()">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">->()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">T</span><span class="special">*</span> <span class="keyword">operator</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">Requires:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code>
-                is not <code class="computeroutput"><span class="number">0</span></code>.
-              </p></dd>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code>
+                  is not <code class="computeroutput"><span class="number">0</span></code>.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code>
-              </p></dd>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code>
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing.
-              </p></dd>
+                  Nothing.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe.
-              </p></dd>
+                  safe.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star" title="
-          Member Function operator*()">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operator_star" title="Member Function operator*()">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">T</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
-<span class="identifier">_</span></pre>
+<pre class="programlisting"><span class="identifier">T</span><span class="special">&</span> <span class="keyword">operator</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">Requires:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code>
-                is not <code class="computeroutput"><span class="number">0</span></code>.
-              </p></dd>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code>
+                  is not <code class="computeroutput"><span class="number">0</span></code>.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="special">*(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">())</span></code>
-              </p></dd>
+                  <code class="computeroutput"><span class="special">*(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">())</span></code>
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing.
-              </p></dd>
+                  Nothing.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe.
-              </p></dd>
+                  safe.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset" title="
-          Member Function reset()">
-          Member Function <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_reset" title="Member Function reset()">Member
+          Function <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">();</span>
-<span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">reset</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>
-                Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">().</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
-              </p></dd>
+                  Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">().</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="number">0</span></code>
-              </p></dd>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="number">0</span></code>
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe.
-              </p></dd>
+                  safe.
+                </p></dd>
 </dl>
 </div>
-<pre class="programlisting">
-    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">new_value</span><span class="special">);</span>
-#</pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">new_value</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>
-                Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">(</span><span class="identifier">new_value</span><span class="special">).</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
-              </p></dd>
+                  Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">(</span><span class="identifier">new_value</span><span class="special">).</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="identifier">new_value</span></code>
-              </p></dd>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="identifier">new_value</span></code>
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe.
-              </p></dd>
+                  safe.
+                </p></dd>
 </dl>
 </div>
-<pre class="programlisting">
-    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">deleter</span><span class="special">);</span>
-#</pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">deleter</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>
-                Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">(</span><span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">deleter</span><span class="special">).</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
-              </p></dd>
+                  Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">(</span><span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">deleter</span><span class="special">).</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="identifier">new_value</span></code>
-              </p></dd>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="identifier">new_value</span></code>
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe.
-              </p></dd>
+                  safe.
+                </p></dd>
 </dl>
 </div>
-<pre class="programlisting">
-    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">deleter</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</span><span class="special">);</span>
-#</pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Y</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">D</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">reset</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">*</span> <span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">D</span> <span class="identifier">deleter</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</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>
-                Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">(</span><span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">deleter</span><span class="special">,</span> <span class="identifier">a</span><span class="special">).</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
-              </p></dd>
+                  Equivalent to <code class="computeroutput"><span class="identifier">shared_ptr</span><span class="special">(</span><span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">deleter</span><span class="special">,</span> <span class="identifier">a</span><span class="special">).</span><span class="identifier">swap</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get_shared_ptr</span><span class="special">())</span></code>. Update the mapping.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="identifier">new_value</span></code>
-              </p></dd>
+                  <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()==</span><span class="identifier">new_value</span></code>
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> when resources unavailable.
+                </p></dd>
 <dt><span class="term">Thread safety:</span></dt>
 <dd><p>
-                safe.
-              </p></dd>
+                  safe.
+                </p></dd>
 </dl>
 </div>
 <div class="variablelist">
@@ -499,107 +467,99 @@
 <dl>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-                If <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()!=</span><span class="identifier">new_value</span></code> and <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code> is non-<code class="computeroutput"><span class="identifier">NULL</span></code>,
-                invoke <code class="computeroutput"><span class="keyword">delete</span> <span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code> or <code class="computeroutput"><span class="identifier">deleter</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">())</span></code> as appropriate. Store <code class="computeroutput"><span class="identifier">new_value</span></code> as the pointer associated
-                with the current thread.
-              </p></dd>
+                  If <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()!=</span><span class="identifier">new_value</span></code> and <code class="computeroutput"><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code> is non-<code class="computeroutput"><span class="identifier">NULL</span></code>,
+                  invoke <code class="computeroutput"><span class="keyword">delete</span> <span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">()</span></code> or <code class="computeroutput"><span class="identifier">deleter</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">get</span><span class="special">())</span></code> as appropriate. Store <code class="computeroutput"><span class="identifier">new_value</span></code> as the pointer associated
+                  with the current thread.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get" title="
-          Member Function wait_and_get()">
-          Member Function <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_wait_and_get" title="Member Function wait_and_get()">Member
+          Function <code class="computeroutput"><span class="identifier">wait_and_get</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">shared_ptr_type</span> <span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
-<span class="identifier">a</span></pre>
+<pre class="programlisting"><span class="identifier">shared_ptr_type</span> <span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">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">Effects:</span></dt>
 <dd><p>
-                Waits until the specific shared pointer has been set and returns
-                a shared pointer to this context.
-              </p></dd>
+                  Waits until the specific shared pointer has been set and returns
+                  a shared pointer to this context.
+                </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>
+                  <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>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora" title="
-          Member Function operator[]()">
-          Member Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.thread_specific_shared_ptr_operatora" title="Member Function operator[]()">Member
+          Function <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">shared_ptr_type</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
-<span class="identifier">o</span></pre>
+<pre class="programlisting"><span class="identifier">shared_ptr_type</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">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">Effects:</span></dt>
 <dd><p>
-                Returns a copy of the specific shared_ptr of the thread of execution
-                identified by the <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code>.
-              </p></dd>
+                  Returns a copy of the specific shared_ptr of the thread of execution
+                  identified by the <code class="computeroutput"><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>
+                  Nothing.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex" title="
-          Member Function get_mutex()">
-          Member Function <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_mutex" title="Member Function get_mutex()">Member
+          Function <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">mutex_type</span><span class="special">&</span>             <span class="identifier">get_mutex</span><span class="special">();</span>
-<span class="identifier">n</span></pre>
+<pre class="programlisting"><span class="identifier">mutex_type</span><span class="special">&</span>             <span class="identifier">get_mutex</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 a reference to the protection mutex.
-              </p></dd>
+                  Returns a reference to the protection mutex.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing.
-              </p></dd>
+                  Nothing.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map"></a><a href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map" title="
-          Member Function get_map()">
-          Member Function <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map"></a><a class="link" href="thread_specific_shared_ptr_hpp.html#toward_boost_interthreads.reference.thread_specific_shared_ptr_hpp.thread_specific_shared_ptr_reference_thread_specific_shared_ptr.get_map" title="Member Function get_map()">Member
+          Function <code class="computeroutput"><span class="identifier">get_map</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">const</span> <span class="identifier">map_type</span><span class="special">&</span>         <span class="identifier">get_map</span><span class="special">(</span><span class="identifier">lock_type</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
-<span class="identifier">a</span></pre>
+<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">map_type</span><span class="special">&</span>         <span class="identifier">get_map</span><span class="special">(</span><span class="identifier">lock_type</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">Effects:</span></dt>
 <dd><p>
-                Returns a reference to the mapping from <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code>
-                to the specific pointers provided the user gives a lock on the motext
-                get using <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code>.
-              </p></dd>
+                  Returns a reference to the mapping from <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code>
+                  to the specific pointers provided the user gives a lock on the
+                  motext get using <code class="computeroutput"><span class="identifier">get_mutex</span><span class="special">()</span></code>.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing.
-              </p></dd>
+                  Nothing.
+                </p></dd>
 </dl>
 </div>
 </div>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_tuple_hpp.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_tuple_hpp.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_tuple_hpp.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,17 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>
-      Header <boost/interthreads/thread_tuple.hpp></title>
+<title>Header <boost/interthreads/thread_tuple.hpp></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.InterThreads">
-<link rel="up" href="../reference.html" title=" Reference">
-<link rel="prev" href="set_once_hpp.html" title=" Header
-      <boost/interthreads/set_once.hpp>">
-<link rel="next" href="thread_tuple_once_hpp.html" title="
-      Header <boost/interthreads/thread_tuple_once.hpp>">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="set_once_hpp.html" title="Header <boost/interthreads/set_once.hpp>">
+<link rel="next" href="thread_tuple_once_hpp.html" title="Header <boost/interthreads/thread_tuple_once.hpp>">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,511 +22,476 @@
 <div class="spirit-nav">
 <a accesskey="p" href="set_once_hpp.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="thread_tuple_once_hpp.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp"></a><a href="thread_tuple_hpp.html" title="
-      Header <boost/interthreads/thread_tuple.hpp>">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp"></a><a class="link" href="thread_tuple_hpp.html" title="Header <boost/interthreads/thread_tuple.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
 </h3></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class">
-        Template Class <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class">Template
+        Class <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code></a></span></dt>
 <dd><dl>
 <dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.template_parameters">Template
           parameters</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_callable_constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_destructor">
-          Destructor</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_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="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join">
-          Member function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_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="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_until___">Member
           function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_for___">Member
           function <code class="computeroutput"><span class="identifier">join_all_for</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt">
-          Member function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_any_until___">Member
           function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all">
-          Member function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all">
-          Member function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size">
-          Member function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_make_thread_tuple">
-        Non Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_make_thread_tuple">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple</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">interthreads</span> <span class="special">{</span>
+<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">interthreads</span> <span class="special">{</span>
 
-        <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">N</span><span class="special">></span>
-        <span class="keyword">class</span> <span class="identifier">thread_tuple</span><span class="special">;</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">N</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">thread_tuple</span><span class="special">;</span>
 
-        <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
-        <span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</span><span class="special">></span> <span class="identifier">make_thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</span><span class="special">);</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+    <span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</span><span class="special">></span> <span class="identifier">make_thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</span><span class="special">);</span>
 
-    <span class="special">}</span>
-    <span class="special">}</span>
-<span class="identifier">ead_tuple</span><span class="special"></</span></pre>
-<div class="section" lang="en">
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class" title="
-        Template Class thread_tuple<>">
-        Template Class <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class" title="Template Class thread_tuple<>">Template
+        Class <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code></a>
 </h4></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.template_parameters">Template
           parameters</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_callable_constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_destructor">
-          Destructor</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_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="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join">
-          Member function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_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="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_until___">Member
           function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_for___">Member
           function <code class="computeroutput"><span class="identifier">join_all_for</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt">
-          Member function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_any_until___">Member
           function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all">
-          Member function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all">
-          Member function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size">
-          Member function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
 </dl></div>
 <p>
           <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
           defines a thread groupe where the number of threads is know statically
           and the threads are created at construction time.
         </p>
-<pre class="programlisting">
-    <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">n</span><span class="special">></span>
-    <span class="keyword">class</span> <span class="identifier">thread_tuple</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">F0</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="number">1</span><span class="special">></span>
-        <span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">fn</span><span class="special">-</span><span class="number">1</span><span class="special">);</span>
-        
-        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
-        <span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span> <span class="identifier">f</span><span class="special">);</span>
-        <span class="special">~</span><span class="identifier">thread_tuple</span><span class="special">();</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">n</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">thread_tuple</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">F0</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="number">1</span><span class="special">></span>
+    <span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">fn</span><span class="special">-</span><span class="number">1</span><span class="special">);</span>
+    
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span> <span class="identifier">f</span><span class="special">);</span>
+    <span class="special">~</span><span class="identifier">thread_tuple</span><span class="special">();</span>
 
-        <span class="comment">// move support
-</span>        <span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">x</span><span class="special">);</span>
-        <span class="identifier">thread_tuple</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</span><span class="special">>>();</span>
-        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">move</span><span class="special">();</span>
+    <span class="comment">// move support
+</span>    <span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="identifier">thread_tuple</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</span><span class="special">>>();</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</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">thread_tuple</span><span class="special"><</span><span class="identifier">n</span><span class="special">>&</span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="identifier">n</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_all</span><span class="special">();</span>
-        <span class="keyword">bool</span> <span class="identifier">join_all_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_all_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">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_all</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">join_all_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_all_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">void</span> <span class="identifier">detach</span><span class="special">();</span>
-        <span class="keyword">void</span> <span class="identifier">detach_all</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">detach_all</span><span class="special">();</span>
 
-        <span class="keyword">void</span> <span class="identifier">interrupt</span><span class="special">();</span>
-        <span class="keyword">void</span> <span class="identifier">interrupt_all</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">void</span> <span class="identifier">interrupt</span><span class="special">();</span>
+    <span class="keyword">void</span> <span class="identifier">interrupt_all</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="identifier">size_t</span> <span class="identifier">size</span><span class="special">();</span>
-        
-        <span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">);</span>
-    <span class="special">};</span>    
-    <span class="special">}</span>
-    <span class="special">}</span>
-<span class="identifier">ze_t</span><span class="special"></</span><span class="identifier">phrase</span><span class="special">></span> <span class="special"><</span><span class="identifier">phrase</span> <span class="identifier">role</span><span class="special">=</span>#<span class="identifier">identifie</span></pre>
+    <span class="identifier">size_t</span> <span class="identifier">size</span><span class="special">();</span>
+    
+    <span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">);</span>
+<span class="special">};</span>    
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
 <p>
           The <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
           class is responsible for launching and managing a static collection of
           threads that are related in some fashion. No new threads can be added to
           the tuple once constructed.
         </p>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.template_parameters"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.template_parameters" title="Template
-          parameters">Template
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.template_parameters"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.template_parameters" title="Template parameters">Template
           parameters</a>
 </h5></div></div></div>
 <p>
             <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
             is instantiated with the following value:
           </p>
-<div class="itemizedlist"><ul type="disc"><li>
-              n is the size of the tuple.
-            </li></ul></div>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                n is the size of the tuple.
+              </li></ul></div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_callable_constructor"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_callable_constructor" title="
-          Constructor">
-          Constructor</a>
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_callable_constructor"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_callable_constructor" title="Constructor">Constructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
-    <span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">func_0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">func_n</span><span class="special">-</span><span class="number">1</span><span class="special">);</span>
-<span class="identifier">e</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+<span class="identifier">thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">func_0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">func_n</span><span class="special">-</span><span class="number">1</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">Fk</span></code> must by copyable.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">Fk</span></code> must by copyable.
+                </p></dd>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">func_k</span></code> is copied
-                into storage managed internally by the library, and that copy is
-                invoked on a newly-created thread of execution. If this invocation
-                results in an exception being propagated into the internals of the
-                library that is not of type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code>,
-                then <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">()</span></code>
-                will be called.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">func_k</span></code> is copied
+                  into storage managed internally by the library, and that copy is
+                  invoked on a newly-created thread of execution. If this invocation
+                  results in an exception being propagated into the internals of
+                  the library that is not of type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code>,
+                  then <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">()</span></code>
+                  will be called.
+                </p></dd>
 <dt><span class="term">Postconditions:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
-                refers to the newly created tuple of threads of execution.
-              </p></dd>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to the newly created tuple of threads 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_resource_error</span></code> if an error
-                occurs.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_resource_error</span></code> if an error
+                  occurs.
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Currently up to ten arguments <code class="computeroutput"><span class="identifier">func_0</span></code>
-                to <code class="computeroutput"><span class="identifier">funct_9</span></code> can be
-                specified.
-              </p></dd>
+                  Currently up to ten arguments <code class="computeroutput"><span class="identifier">func_0</span></code>
+                  to <code class="computeroutput"><span class="identifier">funct_9</span></code> can
+                  be specified.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_destructor"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_destructor" title="
-          Destructor">
-          Destructor</a>
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_destructor"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_destructor" title="Destructor">Destructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="special">~</span><span class="identifier">thread_tuple</span><span class="special">();</span>
-#</pre>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">thread_tuple</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 *this have associateds thread of execution, calls detach() on
-                them. Destroys *this.
-              </p></dd>
+                  If *this have associateds thread of execution, calls detach() on
+                  them. Destroys *this.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_joinable"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_joinable" title="
-          Member function joinable()">
-          Member function <code class="computeroutput"><span class="identifier">joinable</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_joinable"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_joinable" title="Member function joinable()">Member
+          function <code class="computeroutput"><span class="identifier">joinable</span><span class="special">()</span></code></a>
 </h5></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>
-<span class="identifier">a</span></pre>
+<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 threads of execution, <code class="computeroutput"><span class="keyword">false</span></code>
-                otherwise.
-              </p></dd>
+                  <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 threads 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>
+                  Nothing
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join" title="
-          Member function join_all()">
-          Member function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_join" title="Member function join_all()">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">join</span><span class="special">();</span>
-    <span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
-<span class="identifier">de</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join</span><span class="special">();</span>
+<span class="keyword">void</span> <span class="identifier">join_all</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>
-                Call <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the tuple has terminated.
-              </p></dd>
+                  Every thread in the tuple has terminated.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined interruption
-                points, <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_until___"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_until___" title="Member
-          function join_all_until()">Member
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_until___"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_until___" title="Member function join_all_until()">Member
           function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">bool</span> <span class="identifier">join_all_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="identifier">_</span></pre>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">join_all_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>
+</pre>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-                Call <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code> on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code>
+                  object in the tuple.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the tuple has terminated.
-              </p></dd>
+                  Every thread in the tuple has terminated.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                true if joined.
-              </p></dd>
+                  true if joined.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
-                interruption points, <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><>::</span><span class="identifier">join_all_until</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><>::</span><span class="identifier">join_all_until</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_for___"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_for___" title="Member
-          function join_all_for()">Member
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_for___"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_all_for___" title="Member function join_all_for()">Member
           function <code class="computeroutput"><span class="identifier">join_all_for</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <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>
-<span class="identifier">ec</span></pre>
+<pre class="programlisting"><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">Effects:</span></dt>
 <dd><p>
-                As <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">(</span><span class="identifier">now</span><span class="special">()+</span><span class="identifier">rel_time</span><span class="special">)</span></code>.
-              </p></dd>
+                  As <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">(</span><span class="identifier">now</span><span class="special">()+</span><span class="identifier">rel_time</span><span class="special">)</span></code>.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the tuple has terminated.
-              </p></dd>
+                  Every thread in the tuple has terminated.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                true if joined.
-              </p></dd>
+                  true if joined.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
-                interruption points, <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><>::</span><span class="identifier">join_all_for</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><>::</span><span class="identifier">join_all_for</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt" title="
-          Member function join_any()">
-          Member function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a>
-</h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">conc_join_any</span><span class="special">();</span>
-<span class="identifier">l</span></pre>
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.join_first_then_interrupt" title="Member function join_any()">Member
+          function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">conc_join_any</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>
-                Call <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code>
-                on a temporary thread_tuple and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code>
+                  on a temporary thread_tuple and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the tuple has terminated.
-              </p></dd>
+                  Every thread in the tuple has terminated.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code>
-                is one of the predefined interruption points, <code class="computeroutput"><span class="identifier">conc_join_any</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code> is one of the predefined interruption
+                  points, <code class="computeroutput"><span class="identifier">conc_join_any</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_any_until___"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_any_until___" title="Member
-          function join_any_until()">Member
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_any_until___"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.member_function__join_any_until___" title="Member function join_any_until()">Member
           function <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">conc_join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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="special"></</span><span class="identifier">phr</span></pre>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">conc_join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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>
-                Call <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code> on a temporary thread_tuple and
-                the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code> on a temporary thread_tuple and
+                  the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the tuple has terminated.
-              </p></dd>
+                  Every thread in the tuple has terminated.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                true if joined.
-              </p></dd>
+                  true if joined.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code> is one of the predefined interruption
-                points, <code class="computeroutput"><span class="identifier">conc_join_any_until</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">join_any_until</span><span class="special">()</span></code> is one of the predefined interruption
+                  points, <code class="computeroutput"><span class="identifier">conc_join_any_until</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all" title="
-          Member function detach_all()">
-          Member function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.detach_all" title="Member function detach_all()">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">detach_all</span><span class="special">();</span>
-<span class="special"><</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">detach_all</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>
-                Call <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all" title="
-          Member function interrupt_all()">
-          Member function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_interrupt_all" title="Member function interrupt_all()">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">interrupt_all</span><span class="special">();</span>
-<span class="identifier">r</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">interrupt_all</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>
-                Call <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">interrupt</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">interrupt</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size" title="
-          Member function size()">
-          Member function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_class.thread_tuple_size" title="Member function size()">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">size</span><span class="special">();</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">size</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 number of threads in the tuple.
-              </p></dd>
+                  The number of threads in the tuple.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing.
-              </p></dd>
+                  Nothing.
+                </p></dd>
 </dl>
 </div>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_make_thread_tuple"></a><a href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_make_thread_tuple" title="
-        Non Member Function make_thread_tuple()">
-        Non Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_make_thread_tuple"></a><a class="link" href="thread_tuple_hpp.html#toward_boost_interthreads.reference.thread_tuple_hpp.thread_tuple_make_thread_tuple" title="Non Member Function make_thread_tuple()">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple</span><span class="special">()</span></code></a>
 </h4></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
-    <span class="identifier">thread_tuple</span> <span class="identifier">make_thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</span><span class="special">);</span>
-<span class="identifier">em</span></pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+<span class="identifier">thread_tuple</span> <span class="identifier">make_thread_tuple</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</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>
-              makes a new thread_tuple<>.
-            </p></dd>
+                makes a new thread_tuple<>.
+              </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-              the created thread tuple.
-            </p></dd>
+                the created thread tuple.
+              </p></dd>
 </dl>
 </div>
 </div>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_tuple_once_hpp.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_tuple_once_hpp.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/reference/thread_tuple_once_hpp.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,17 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>
-      Header <boost/interthreads/thread_tuple_once.hpp></title>
+<title>Header <boost/interthreads/thread_tuple_once.hpp></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.InterThreads">
-<link rel="up" href="../reference.html" title=" Reference">
-<link rel="prev" href="thread_tuple_hpp.html" title="
-      Header <boost/interthreads/thread_tuple.hpp>">
-<link rel="next" href="thread_group_once_hpp.html" title="
-      Header <boost/interthreads/thread_group_once.hpp>">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="thread_tuple_hpp.html" title="Header <boost/interthreads/thread_tuple.hpp>">
+<link rel="next" href="thread_group_once_hpp.html" title="Header <boost/interthreads/thread_group_once.hpp>">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,84 +22,77 @@
 <div class="spirit-nav">
 <a accesskey="p" href="thread_tuple_hpp.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="thread_group_once_hpp.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp"></a><a href="thread_tuple_once_hpp.html" title="
-      Header <boost/interthreads/thread_tuple_once.hpp>">
-      Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp"></a><a class="link" href="thread_tuple_once_hpp.html" title="Header <boost/interthreads/thread_tuple_once.hpp>">Header
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_tuple_once</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>
 </h3></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class">
-        Template Class <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class">Template
+        Class <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><></span></code></a></span></dt>
 <dd><dl>
 <dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.template_parameters">Template
           parameters</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_callable_constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_destructor">
-          Destructor</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable">
-          Member function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join">
-          Member function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_all_until___">Member
           function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_any___">Member
           function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt">
-          Member function <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all">
-          Member function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all">
-          Member function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size">
-          Member function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_make_thread_tuple_once">
-        Non Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple_once</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_make_thread_tuple_once">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple_once</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">interthreads</span> <span class="special">{</span>
+<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">interthreads</span> <span class="special">{</span>
 
-        <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">N</span><span class="special">></span>
-        <span class="keyword">class</span> <span class="identifier">thread_tuple_once</span><span class="special">;</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">N</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">thread_tuple_once</span><span class="special">;</span>
 
-        <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
-        <span class="identifier">thread_tuple</span> <span class="identifier">make_thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</span><span class="special">);</span>
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+    <span class="identifier">thread_tuple</span> <span class="identifier">make_thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</span><span class="special">);</span>
 
-    <span class="special">}</span>
-    <span class="special">}</span>
-<span class="identifier">le_once</span><span class="special"></</span><span class="identifier">ph</span></pre>
-<div class="section" lang="en">
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class" title="
-        Template Class thread_tuple_once<>">
-        Template Class <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><></span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class" title="Template Class thread_tuple_once<>">Template
+        Class <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><></span></code></a>
 </h4></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.template_parameters">Template
           parameters</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_callable_constructor">
-          Constructor</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_destructor">
-          Destructor</a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable">
-          Member function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join">
-          Member function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section">Constructor</span></dt>
+<dt><span class="section">Destructor</span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_all_until___">Member
           function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a></span></dt>
 <dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_any___">Member
           function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt">
-          Member function <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all">
-          Member function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all">
-          Member function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
-<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size">
-          Member function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt">Member
+          function <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a></span></dt>
+<dt><span class="section"><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
 </dl></div>
 <p>
           <code class="computeroutput"><span class="identifier">biththread_tuple_once</span></code> is
@@ -111,391 +100,364 @@
           which allows to join the thread finishing the first, using for that the
           <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">set_once</span></code> synchronizer.
         </p>
-<pre class="programlisting">
-    <span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">n</span><span class="special">></span>
-    <span class="keyword">class</span> <span class="identifier">thread_tuple_once</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">F0</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="number">1</span><span class="special">></span>
-        <span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">fn</span><span class="special">-</span><span class="number">1</span><span class="special">);</span>
-        
-        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
-        <span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span> <span class="identifier">f</span><span class="special">);</span>
-        <span class="special">~</span><span class="identifier">thread_tuple_once</span><span class="special">();</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>  <span class="identifier">n</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">thread_tuple_once</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">F0</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="number">1</span><span class="special">></span>
+    <span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">fn</span><span class="special">-</span><span class="number">1</span><span class="special">);</span>
+    
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
+    <span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span> <span class="identifier">f</span><span class="special">);</span>
+    <span class="special">~</span><span class="identifier">thread_tuple_once</span><span class="special">();</span>
 
-        <span class="comment">// move support
-</span>        <span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">x</span><span class="special">);</span>
-        <span class="identifier">thread_tuple_once</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>>();</span>
-        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">move</span><span class="special">();</span>
+    <span class="comment">// move support
+</span>    <span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>></span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="identifier">thread_tuple_once</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</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">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>>();</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move_t</span><span class="special"><</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</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">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>&</span> <span class="identifier">x</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">thread_tuple_once</span><span class="special"><</span><span class="identifier">n</span><span class="special">>&</span> <span class="identifier">x</span><span class="special">);</span>
 
-        <span class="keyword">bool</span> <span class="identifier">joinables</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
-        <span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
-        <span class="keyword">bool</span> <span class="identifier">join_all_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_all_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">bool</span> <span class="identifier">joinables</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">join_all_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_all_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">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</span><span class="special">();</span>
-        <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</span><span class="special">();</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">join_any_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">void</span> <span class="identifier">detach_all</span><span class="special">();</span>
+    <span class="keyword">void</span> <span class="identifier">detach_all</span><span class="special">();</span>
 
-        <span class="keyword">void</span> <span class="identifier">interrupt_all</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">void</span> <span class="identifier">interrupt_all</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="identifier">size_t</span> <span class="identifier">size</span><span class="special">();</span>
-        
-        <span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">);</span>
-    <span class="special">};</span>    
-    <span class="special">}</span>
-    <span class="special">}</span>
-<span class="identifier">ial</span><span class="string">">,</phrase> <phrase role="</span><span class="identifier">special</span>#<span class="special">>...</span></pre>
+    <span class="identifier">size_t</span> <span class="identifier">size</span><span class="special">();</span>
+    
+    <span class="keyword">const</span> <span class="identifier">thread</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">);</span>
+<span class="special">};</span>    
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
 <p>
           The __thread_tuple<span class="underline">once</span>_ class is
           responsible for launching and managing a static collection of threads that
           are related in some fashion. No new threads can be added to the tuple once
           constructed.
         </p>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.template_parameters"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.template_parameters" title="Template
-          parameters">Template
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.template_parameters"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.template_parameters" title="Template parameters">Template
           parameters</a>
 </h5></div></div></div>
 <p>
             <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><></span></code>
             is instantiated with the following value:
           </p>
-<div class="itemizedlist"><ul type="disc"><li>
-              n is the size of the tuple.
-            </li></ul></div>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                n is the size of the tuple.
+              </li></ul></div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_callable_constructor"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_callable_constructor" title="
-          Constructor">
-          Constructor</a>
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_callable_constructor"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_callable_constructor" title="Constructor">Constructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
-    <span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">func_0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">func_n</span><span class="special">-</span><span class="number">1</span><span class="special">);</span>
-<span class="identifier">le</span></pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+<span class="identifier">thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">func_0</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">Fn</span><span class="special">-</span><span class="number">1</span> <span class="identifier">func_n</span><span class="special">-</span><span class="number">1</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">Fk</span></code> must by copyable.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">Fk</span></code> must by copyable.
+                </p></dd>
 <dt><span class="term">Effects:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="identifier">func_k</span></code> is copied
-                into storage managed internally by the library, and that copy is
-                invoked on a newly-created thread of execution. If this invocation
-                results in an exception being propagated into the internals of the
-                library that is not of type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code>,
-                then <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">()</span></code>
-                will be called.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">func_k</span></code> is copied
+                  into storage managed internally by the library, and that copy is
+                  invoked on a newly-created thread of execution. If this invocation
+                  results in an exception being propagated into the internals of
+                  the library that is not of type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code>,
+                  then <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">()</span></code>
+                  will be called.
+                </p></dd>
 <dt><span class="term">Postconditions:</span></dt>
 <dd><p>
-                <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
-                refers to the newly created tuple of threads of execution.
-              </p></dd>
+                  <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+                  refers to the newly created tuple of threads 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_resource_error</span></code> if an error
-                occurs.
-              </p></dd>
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_resource_error</span></code> if an error
+                  occurs.
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Currently up to ten arguments <code class="computeroutput"><span class="identifier">func_0</span></code>
-                to <code class="computeroutput"><span class="identifier">funct_9</span></code> can be
-                specified.
-              </p></dd>
+                  Currently up to ten arguments <code class="computeroutput"><span class="identifier">func_0</span></code>
+                  to <code class="computeroutput"><span class="identifier">funct_9</span></code> can
+                  be specified.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_destructor"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_destructor" title="
-          Destructor">
-          Destructor</a>
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_destructor"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_destructor" title="Destructor">Destructor</a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="special">~</span><span class="identifier">thread_tuple_once</span><span class="special">();</span>
-<span class="identifier">u</span></pre>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">thread_tuple_once</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 *this have associateds thread of execution, calls detach() on
-                them. Destroys *this.
-              </p></dd>
+                  If *this have associateds thread of execution, calls detach() on
+                  them. Destroys *this.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable" title="
-          Member function joinables()">
-          Member function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_joinable" title="Member function joinables()">Member
+          function <code class="computeroutput"><span class="identifier">joinables</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">bool</span> <span class="identifier">joinables</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
-<span class="identifier">s</span></pre>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">joinables</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 threads of execution, <code class="computeroutput"><span class="keyword">false</span></code>
-                otherwise.
-              </p></dd>
+                  <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 threads 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>
+                  Nothing
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join" title="
-          Member function join_all()">
-          Member function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_join" title="Member function join_all()">Member
+          function <code class="computeroutput"><span class="identifier">join_all</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">join_all</span><span class="special">();</span>
-<span class="identifier">e</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">join_all</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>
-                Call <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the tuple has terminated.
-              </p></dd>
+                  Every thread in the tuple has terminated.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined interruption
-                points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_all_until___"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_all_until___" title="Member
-          function join_all_until()">Member
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_all_until___"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_all_until___" title="Member function join_all_until()">Member
           function <code class="computeroutput"><span class="identifier">join_all_until</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">bool</span> <span class="identifier">join_all_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_all_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">cod</span></pre>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">join_all_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_all_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>
-                Call <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code> on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code>
+                  object in the tuple.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the tuple has terminated.
-              </p></dd>
+                  Every thread in the tuple has terminated.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                true if joined.
-              </p></dd>
+                  true if joined.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
-                interruption points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_any___"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_any___" title="Member
-          function join_any()">Member
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_any___"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.member_function__join_any___" title="Member function join_any()">Member
           function <code class="computeroutput"><span class="identifier">join_any</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</span><span class="special">();</span>
-<span class="identifier">e</span></pre>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">join_any</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>
-                Call <code class="computeroutput"><span class="identifier">join_first</span><span class="special">()</span></code>
-                and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">join_first</span><span class="special">()</span></code> and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the tuple has terminated.
-              </p></dd>
+                  Every thread in the tuple has terminated.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined interruption
-                points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt" title="
-          Member function timed_join_first_then_interrupt()">
-          Member function <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code></a>
-</h5></div></div></div>
-<pre class="programlisting">
-    <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">timed_join_first_then_interrupt</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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">timed_join_first_then_interrupt</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>
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.timed_join_first_then_interrupt" title="Member function timed_join_first_then_interrupt()">Member
+          function <code class="computeroutput"><span class="identifier">timed_join_first_then_interrupt</span><span class="special">()</span></code></a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">timed_join_first_then_interrupt</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="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">timed_join_first_then_interrupt</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>
-                Call <code class="computeroutput"><span class="identifier">timed_join_first</span><span class="special">()</span></code> and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">timed_join_first</span><span class="special">()</span></code> and the <code class="computeroutput"><span class="identifier">interrup_all</span><span class="special">()</span></code>.
+                </p></dd>
 <dt><span class="term">Postcondition:</span></dt>
 <dd><p>
-                Every thread in the tuple has terminated.
-              </p></dd>
+                  Every thread in the tuple has terminated.
+                </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-                true if joined.
-              </p></dd>
+                  true if joined.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing
-              </p></dd>
+                  Nothing
+                </p></dd>
 <dt><span class="term">Note:</span></dt>
 <dd><p>
-                Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
-                interruption points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
-              </p></dd>
+                  Since <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">timed_join</span></code> is one of the predefined
+                  interruption points, <code class="computeroutput"><span class="identifier">thread_tuple_once</span><span class="special"><>::</span><span class="identifier">timed_join_all</span><span class="special">()</span></code> is also an interruption point.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all" title="
-          Member function detach_all()">
-          Member function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.detach_all" title="Member function detach_all()">Member
+          function <code class="computeroutput"><span class="identifier">detach_all</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">detach_all</span><span class="special">();</span>
-<span class="special"><</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">detach_all</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>
-                Call <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">detach</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all" title="
-          Member function interrupt_all()">
-          Member function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_interrupt_all" title="Member function interrupt_all()">Member
+          function <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">void</span> <span class="identifier">interrupt_all</span><span class="special">();</span>
-<span class="identifier">r</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">interrupt_all</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>
-                Call <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">interrupt</span><span class="special">()</span></code>
-                on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
-              </p></dd>
+                  Call <code class="computeroutput"><span class="identifier">thread</span><span class="special">::</span><span class="identifier">interrupt</span><span class="special">()</span></code>
+                  on each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code> object in the tuple.
+                </p></dd>
 </dl>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size" title="
-          Member function size()">
-          Member function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_class.thread_tuple_once_size" title="Member function size()">Member
+          function <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">size</span><span class="special">();</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">size</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 number of threads in the tuple.
-              </p></dd>
+                  The number of threads in the tuple.
+                </p></dd>
 <dt><span class="term">Throws:</span></dt>
 <dd><p>
-                Nothing.
-              </p></dd>
+                  Nothing.
+                </p></dd>
 </dl>
 </div>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_make_thread_tuple_once"></a><a href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_make_thread_tuple_once" title="
-        Non Member Function make_thread_tuple_once()">
-        Non Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple_once</span><span class="special">()</span></code></a>
+<a name="toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_make_thread_tuple_once"></a><a class="link" href="thread_tuple_once_hpp.html#toward_boost_interthreads.reference.thread_tuple_once_hpp.thread_tuple_once_make_thread_tuple_once" title="Non Member Function make_thread_tuple_once()">Non
+        Member Function <code class="computeroutput"><span class="identifier">make_thread_tuple_once</span><span class="special">()</span></code></a>
 </h4></div></div></div>
-<pre class="programlisting">
-    <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
-    <span class="identifier">thread_tuple_once</span> <span class="identifier">make_thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</span><span class="special">);</span>
-<span class="identifier">ra</span></pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F0</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="number">1</span><span class="special">></span>
+<span class="identifier">thread_tuple_once</span> <span class="identifier">make_thread_tuple_once</span><span class="special">(</span><span class="identifier">F0</span> <span class="identifier">f0</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="number">1</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>
-              makes a new thread_tuple_once<>.
-            </p></dd>
+                makes a new thread_tuple_once<>.
+              </p></dd>
 <dt><span class="term">Returns:</span></dt>
 <dd><p>
-              the created thread tuple.
-            </p></dd>
+                the created thread tuple.
+              </p></dd>
 </dl>
 </div>
 </div>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,15 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<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.InterThreads">
-<link rel="up" href="../index.html" title="Toward Boost.InterThreads">
-<link rel="prev" href="overview/motivation.html" title=" Motivation">
-<link rel="next" href="users_guide/getting_started.html" title="
-      Getting Started">
+<title>Users'Guide</title>
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Toward Boost.InterThreads 0.1.3">
+<link rel="up" href="../index.html" title="Toward Boost.InterThreads 0.1.3">
+<link rel="prev" href="overview.html" title="Overview">
+<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>
@@ -22,47 +20,1744 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="overview/motivation.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="users_guide/getting_started.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="overview.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="toward_boost_interthreads.users_guide"></a> Users'Guide
+<a name="toward_boost_interthreads.users_guide"></a><a class="link" href="users_guide.html" title="Users'Guide">Users'Guide</a>
 </h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="users_guide/getting_started.html">
-      Getting Started</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.getting_started">Getting
+      Started</a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="users_guide/getting_started.html#toward_boost_interthreads.users_guide.getting_started.install">
-        Installing InterThreads</a></span></dt>
-<dt><span class="section"><a href="users_guide/getting_started.html#toward_boost_interthreads.users_guide.getting_started.hello_world__decorator">Hello
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.install">Installing
+        InterThreads</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.hello_world__decorator">Hello
         World! decorator</a></span></dt>
-<dt><span class="section"><a href="users_guide/getting_started.html#toward_boost_interthreads.users_guide.getting_started.monotonic_thread_id">Monotonic
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.monotonic_thread_id">Monotonic
         Thread Id</a></span></dt>
-<dt><span class="section"><a href="users_guide/getting_started.html#toward_boost_interthreads.users_guide.getting_started.basic_keep_alive">Basic
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.basic_keep_alive">Basic
         keep alive</a></span></dt>
 </dl></dd>
-<dt><span class="section"> Tutorial</span></dt>
+<dt><span class="section">Tutorial</span></dt>
 <dd><dl>
-<dt><span class="section"><a href="users_guide/tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator">Thread
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator">Thread
         Decorator</a></span></dt>
-<dt><span class="section"><a href="users_guide/tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer">Thread
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer">Thread
         Specific Shared Pointer</a></span></dt>
-<dt><span class="section"><a href="users_guide/tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive">Keep
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive">Keep
         alive</a></span></dt>
-<dt><span class="section"><a href="users_guide/tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple">Thread
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple">Thread
         Tuple</a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="users_guide/bibliography.html">
-      References</a></span></dt>
-<dt><span class="section"> Glossary</span></dt>
+<dt><span class="section">Examples</span></dt>
+<dd><dl><dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.examples.thread_safe_deferred_traces">Thread
+        safe deferred traces</a></span></dt></dl></dd>
+<dt><span class="section">References</span></dt>
+<dt><span class="section">Glossary</span></dt>
 </dl></div>
 <p>
       [/
     </p>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.users_guide.getting_started"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.getting_started" title="Getting Started">Getting
+      Started</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.install">Installing
+        InterThreads</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.hello_world__decorator">Hello
+        World! decorator</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.monotonic_thread_id">Monotonic
+        Thread Id</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.basic_keep_alive">Basic
+        keep alive</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.users_guide.getting_started.install"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.install" title="Installing InterThreads">Installing
+        InterThreads</a>
+</h4></div></div></div>
+<a name="toward_boost_interthreads.users_guide.getting_started.install.getting_boost_interthreads"></a><h6>
+<a name="id3024068"></a>
+          <a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.install.getting_boost_interthreads">Getting
+          Boost.InterThreads</a>
+        </h6>
+<p>
+          You can get the last stable release of <span class="bold"><strong>Boost.InterThreads</strong></span>
+          by downloading <code class="literal">interthreads.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/interthreads" target="_top">Boost
+          Sandbox</a>.
+        </p>
+<a name="toward_boost_interthreads.users_guide.getting_started.install.building_boost_interthreads"></a><h6>
+<a name="id3024122"></a>
+          <a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.install.building_boost_interthreads">Building
+          Boost.InterThreads</a>
+        </h6>
+<p>
+          <span class="bold"><strong>Boost.InterThreads</strong></span> is not a header only
+          library. You need to compile it before use.
+        </p>
+<pre class="programlisting"><span class="identifier">cd</span> <span class="identifier">libs</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">build</span>
+<span class="identifier">bjam</span>
+</pre>
+<a name="toward_boost_interthreads.users_guide.getting_started.install.build_requirements"></a><h6>
+<a name="id3024192"></a>
+          <a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.install.build_requirements">Build
+          Requirements</a>
+        </h6>
+<p>
+          <span class="bold"><strong>Boost.InterThreads</strong></span> depends on Boost. You
+          must use either Boost version 1.38.x or the version in SVN trunk. In particular,
+          <span class="bold"><strong>Boost.InterThreads</strong></span> depends on:
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Boost.Array</span></dt>
+<dd><p>
+                for array, ...
+              </p></dd>
+<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.Function</span></dt>
+<dd><p>
+                for function, ...
+              </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, thread_specific_ptr, call_once, mutex, condition_variable,
+                ...
+              </p></dd>
+<dt><span class="term">Boost.TypeOf</span></dt>
+<dd><p>
+                to register the ACT types.
+              </p></dd>
+<dt><span class="term">Boost.TypeTrais</span></dt>
+<dd><p>
+                for is_void, remove_references, ...
+              </p></dd>
+<dt><span class="term">Boost.Utility</span></dt>
+<dd><p>
+                for result_of, enable_if...
+              </p></dd>
+</dl>
+</div>
+<a name="toward_boost_interthreads.users_guide.getting_started.install.exceptions_safety"></a><h6>
+<a name="id3024483"></a>
+          <a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.install.exceptions_safety">Exceptions
+          safety</a>
+        </h6>
+<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_interthreads.users_guide.getting_started.install.thread_safety"></a><h6>
+<a name="id3024510"></a>
+          <a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.install.thread_safety">Thread
+          safety</a>
+        </h6>
+<p>
+          All functions in the library are thread-unsafe except when noted explicitly.
+        </p>
+<a name="toward_boost_interthreads.users_guide.getting_started.install.tested_compilers"></a><h6>
+<a name="id3024535"></a>
+          <a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.install.tested_compilers">Tested
+          compilers</a>
+        </h6>
+<p>
+          Currently, <span class="bold"><strong>Boost.InterThreads</strong></span> has been
+          tested in the following compilers/platforms:
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+              GCC 3.4.4 Cygwin
+            </li>
+<li class="listitem">
+              GCC 3.4.6 Linux
+            </li>
+<li class="listitem">
+              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/src/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">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.users_guide.getting_started.hello_world__decorator"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.hello_world__decorator" title="Hello World! decorator">Hello
+        World! decorator</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">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</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">thread</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">bith</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">;</span>
+
+<span class="keyword">void</span> <span class="identifier">my_setup</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">void</span> <span class="identifier">my_cleanup</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">"Bye, Bye!"</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="identifier">bith</span><span class="special">::</span><span class="identifier">thread_decoration</span> <span class="identifier">my_decoration</span><span class="special">(</span><span class="identifier">my_setup</span><span class="special">,</span> <span class="identifier">my_cleanup</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">"..."</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">thread</span> <span class="identifier">th</span><span class="special">(</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_decorator</span><span class="special">(</span><span class="identifier">my_thread</span><span class="special">));</span>
+    <span class="identifier">th</span><span class="special">.</span><span class="identifier">join</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>
+          When <code class="computeroutput"><span class="identifier">th</span></code> is created with
+          the <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_decorator</span></code> wrapper, it will initialize
+          all the decorations before calling <code class="computeroutput"><span class="identifier">my_thread</span></code>.
+          This <code class="computeroutput"><span class="identifier">my_cleanup</span></code> will be
+          registered with the <code class="computeroutput"><span class="identifier">boost</span><span class="special">:</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">at_thread_exit</span></code>
+          if the <code class="computeroutput"><span class="identifier">my_setup</span></code> function
+          succeeds i.e. does not throw. Then the thread function <code class="computeroutput"><span class="identifier">my_thread</span></code>
+          is called. At the thread exit, the <code class="computeroutput"><span class="identifier">my_cleanup</span></code>
+          function is called. This results on the following output
+        </p>
+<pre class="programlisting">Hello World!
+...
+Bye, Bye!
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.users_guide.getting_started.monotonic_thread_id"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.monotonic_thread_id" title="Monotonic Thread Id">Monotonic
+        Thread Id</a>
+</h4></div></div></div>
+<p>
+          This example use thread decorator and thread specific pointers to implement
+          a monotonic thread identifier.
+        </p>
+<p>
+          The monotonic thread identifier is managed by the mono_thread_id class.
+          There is a mutex protecting the access to the monotonic counter. The main
+          difference between a thread_specific_shared_ptr and a thread_specific_ptr
+          is that we can get the specific pointer of another thread (*) With the
+          help of bith::thread_decoration, the setting of the thread specific shared
+          pointer is done transparently, as far as the thread is created using a
+          thread decorator. This setup function resets the specific pointer with
+          the value of the monotonic counter which will be self increased.
+        </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">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</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">interthreads</span><span class="special">/</span><span class="identifier">thread_specific_shared_ptr</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">thread</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">bith</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">;</span>
+
+<span class="keyword">class</span> <span class="identifier">mono_thread_id</span> <span class="special">{</span>
+    <span class="keyword">static</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_decoration</span> <span class="identifier">decoration_</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="keyword">unsigned</span><span class="special">></span> <span class="identifier">tssp_type</span><span class="special">;</span>
+    <span class="keyword">static</span> <span class="identifier">tssp_type</span> <span class="identifier">current_</span><span class="special">;</span>
+    <span class="keyword">static</span> <span class="keyword">unsigned</span> <span class="identifier">counter_</span><span class="special">;</span>
+    <span class="keyword">static</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span> <span class="identifier">sync_</span><span class="special">;</span>
+
+    <span class="keyword">static</span> <span class="keyword">unsigned</span> <span class="identifier">create</span><span class="special">()</span> <span class="special">{</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">></span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">sync_</span><span class="special">);</span>
+        <span class="keyword">unsigned</span> <span class="identifier">res</span> <span class="special">=</span> <span class="identifier">counter_</span><span class="special">;</span>
+        <span class="special">++</span><span class="identifier">counter</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="keyword">static</span> <span class="keyword">void</span> <span class="identifier">setup</span><span class="special">()</span> <span class="special">{</span>
+        <span class="identifier">current_</span><span class="special">.</span><span class="identifier">reset</span><span class="special">(</span><span class="keyword">new</span> <span class="keyword">unsigned</span><span class="special">(</span><span class="identifier">create</span><span class="special">());</span>
+    <span class="special">}</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">static</span> <span class="keyword">unsigned</span> <span class="identifier">id</span><span class="special">()</span> <span class="special">{</span>
+        <span class="keyword">return</span> <span class="special">*</span><span class="identifier">current_</span><span class="special">;</span>
+    <span class="special">}</span>
+    <span class="keyword">static</span> <span class="keyword">unsigned</span> <span class="identifier">id</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="special">{</span>
+        <span class="keyword">return</span> <span class="special">*</span><span class="identifier">current_</span><span class="special">[</span><span class="identifier">id</span><span class="special">];</span>                       <span class="comment">// (*)
+</span>    <span class="special">}</span>
+
+<span class="special">};</span>
+
+<span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_decoration</span> <span class="identifier">mono_thread_id</span><span class="special">::</span><span class="identifier">decoration</span><span class="special">(</span><span class="identifier">mono_thread_id</span><span class="special">::</span><span class="identifier">setup</span><span class="special">);</span>
+<span class="identifier">mono_thread_id</span><span class="special">::</span><span class="identifier">tssp_type</span> <span class="identifier">mono_thread_id</span><span class="special">::</span><span class="identifier">current_</span><span class="special">;</span>
+<span class="keyword">unsigned</span> <span class="identifier">mono_thread_id</span><span class="special">::</span><span class="identifier">counter_</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span> <span class="identifier">mono_thread_id</span><span class="special">::</span><span class="identifier">sync_</span><span class="special">;</span>
+</pre>
+<p>
+          In this way the applications using the thread_decorator can have access
+          to a monotonic thread id mono_thread_id::id() and this id is accesible
+          to other threads providing the boost::thread::id.
+        </p>
+<pre class="programlisting"><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">"mono_thread_id="</span> <span class="special"><<</span> <span class="identifier">mono_thread_id</span><span class="special">::</span><span class="identifier">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="identifier">sleep</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+<span class="special">}</span>
+
+<span class="keyword">struct</span> <span class="identifier">mono_thread_id_out</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">void</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="keyword">const</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">"thread::id="</span> <span class="special"><<</span> <span class="identifier">t</span><span class="special">.</span><span class="identifier">get_id</span><span class="special">()</span>
+              <span class="special"><<</span> <span class="string">" mono_thread_id="</span> <span class="special"><<</span> <span class="identifier">mono_thread_id</span><span class="special">::</span><span class="identifier">id</span><span class="special">(</span><span class="identifier">t</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="special">};</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">bith</span><span class="special">::</span><span class="identifier">shared_threader_decorator</span> <span class="identifier">ae</span><span class="special">;</span>
+    <span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">handles</span><span class="special">,</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">fork_all</span><span class="special">(</span><span class="identifier">basic_threader_decorator</span><span class="special">,</span> <span class="identifier">my_thread</span><span class="special">,</span> <span class="identifier">my_thread</span><span class="special">));</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">handles</span><span class="special">,</span> <span class="identifier">mono_thread_id_out</span><span class="special">());</span>
+    <span class="identifier">bith</span><span class="special">.</span><span class="identifier">join_all</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">mono_thread_id=1
+mono_thread_id=2
+thread::id=xxxx mono_thread_id=1
+thread::id=xxxx mono_thread_id=2
+
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.users_guide.getting_started.basic_keep_alive"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.getting_started.basic_keep_alive" title="Basic keep alive">Basic
+        keep alive</a>
+</h4></div></div></div>
+<p>
+          This example shows the keep_alive basics.
+        </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">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</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">interthreads</span><span class="special">/</span><span class="identifier">keep_alive</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">thread</span><span class="special">/</span><span class="identifier">thread</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">bith</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</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">bith</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">enable_keep_alive</span> <span class="identifier">enabler</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">0</span><span class="special">;</span> <span class="identifier">i</span><span class="special"><</span><span class="number">5</span><span class="special">;</span> <span class="identifier">i</span><span class="special">++)</span> <span class="special">{</span>
+        <span class="identifier">bith</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">keep_alive_point</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">"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="identifier">sleep</span><span class="special">(</span><span class="number">1</span><span class="special">);</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">bith</span><span class="special">::</span><span class="identifier">shared_threader_decorator</span> <span class="identifier">ae</span><span class="special">;</span>
+    <span class="identifier">bith</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="identifier">my_thread</span><span class="special">,</span> <span class="identifier">my_thread</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>
+<p>
+          The user creates 4 threads using the shared_threader_decorator <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code> to be able to use
+          the keep_alive mechanism. It uses the default enabler (one keep_alive_point
+          every 2 seconds).
+        </p>
+<p>
+          This results on the following output
+        </p>
+<pre class="programlisting"></pre>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial" title="Tutorial">Tutorial</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator">Thread
+        Decorator</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.declaring_a_decoration">Declaring
+          a decoration</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.creating_threads_with_decorators">Creating
+          threads with decorators</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call">Calling
+          explictly the decoration on a thread</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer">Thread
+        Specific Shared Pointer</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.key_initialization">Key
+          initialization</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.context_initialization">Context
+          initialization</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_on_the_current_thread">Obtain
+          the pointer to the thread-specific object on the current thread</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_of_another_thread">Obtain
+          the pointer to the thread-specific object of another thread</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.iterating_through_all_the_thread_specific_context">Iterating
+          through all the thread specific context</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.deleting_the_context">Deleting
+          the context</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.cleanup_at_thread_exit">Cleanup
+          at thread exit</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive">Keep
+        alive</a></span></dt>
+<dd><dl>
+<dt><span class="section">Interface</span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_mechanism_initialization">Keep
+          alive mechanism initialization</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads">Which
+          threads can be controlled?</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling">Enabling
+          the keep alive mechanism</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling">Disabling
+          the keep alive mechanism</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent">Configuring
+          the dead persistency</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from_the_current_thread">Access
+          from the current thread</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from__the_controller_thread">Access
+          from the controller thread</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple">Thread
+        Tuple</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching">Launching
+          thread tuple</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions">Exceptions
+          in thread functions</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining">Joining
+          and detaching</a></span></dt>
+<dt><span class="section">Interruption</span></dt>
+</dl></dd>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator" title="Thread Decorator">Thread
+        Decorator</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.declaring_a_decoration">Declaring
+          a decoration</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.creating_threads_with_decorators">Creating
+          threads with decorators</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call">Calling
+          explictly the decoration on a thread</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator.declaring_a_decoration"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.declaring_a_decoration" title="Declaring a decoration">Declaring
+          a decoration</a>
+</h5></div></div></div>
+<p>
+            Objects of type <code class="computeroutput"><span class="identifier">thread_decoration</span></code>
+            are usualy static and initialized with a <code class="computeroutput"><span class="identifier">Callable</span></code>
+            object:
+          </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">::</span><span class="identifier">thread_decoration</span> <span class="identifier">d</span><span class="special">;</span>
+<span class="keyword">void</span> <span class="identifier">setup</span><span class="special">();</span>
+
+<span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_decoration</span> <span class="identifier">d</span><span class="special">(</span><span class="identifier">setup</span><span class="special">);</span>
+</pre>
+<p>
+            These decorations will be called either when we request this explicitly
+            at the initialization of the thread (this is needed on the main thread)
+            or when we create a thread using specific decorator wrapper. This is
+            explained in more detail in the next sections.
+          </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator.creating_threads_with_decorators"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.creating_threads_with_decorators" title="Creating threads with decorators">Creating
+          threads with decorators</a>
+</h5></div></div></div>
+<p>
+            When we want the decorations to decorate one thread of execution we can
+            create the thread using the decorator wrapper.
+          </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">(</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">fct</span><span class="special">));</span>
+</pre>
+<p>
+            This behavion is obtained also using one of the <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
+            decorators of the Boost.Async library, as
+          </p>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">basic_threader_decorator</span> <span class="identifier">ae</span><span class="special">;</span>
+<span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">th</span><span class="special">,</span> <span class="identifier">bith</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">fct</span><span class="special">));</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call" title="Calling explictly the decoration on a thread">Calling
+          explictly the decoration on a thread</a>
+</h5></div></div></div>
+<p>
+            For threads that are not created using the boost::thread class, as it
+            is the case of the main thread, we need to call explicitly the function
+            <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">decorate</span></code> at the begining of the thread.
+          </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">bith</span><span class="special">::</span><span class="identifier">decorate</span><span class="special">();</span>
+    <span class="comment">// ...
+</span><span class="special">}</span>
+</pre>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer" title="Thread Specific Shared Pointer">Thread
+        Specific Shared Pointer</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.key_initialization">Key
+          initialization</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.context_initialization">Context
+          initialization</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_on_the_current_thread">Obtain
+          the pointer to the thread-specific object on the current thread</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_of_another_thread">Obtain
+          the pointer to the thread-specific object of another thread</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.iterating_through_all_the_thread_specific_context">Iterating
+          through all the thread specific context</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.deleting_the_context">Deleting
+          the context</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.cleanup_at_thread_exit">Cleanup
+          at thread exit</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.key_initialization"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.key_initialization" title="Key initialization">Key
+          initialization</a>
+</h5></div></div></div>
+<p>
+            As the curent implementation uses the address of the thread_specific_shared_ptr<>
+            object, there is no need to do anything to get the key.
+          </p>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.context_initialization"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.context_initialization" title="Context initialization">Context
+          initialization</a>
+</h5></div></div></div>
+<p>
+            Initially the pointer has a value of <code class="computeroutput"><span class="number">0</span></code>
+            in each thread, but the value for the current thread can be set using
+            the <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code>
+            member functions.
+          </p>
+<p>
+            If the value of the pointer for the current thread is changed using
+            <code class="computeroutput"><span class="identifier">reset</span><span class="special">()</span></code>,
+            then the previous value is destroyed by calling the deleter routine.
+            Alternatively, the stored value can be reset to <code class="computeroutput"><span class="number">0</span></code>
+            and the prior value returned by calling the <code class="computeroutput"><span class="identifier">release</span><span class="special">()</span></code> member function, allowing the application
+            to take back responsibility for destroying the object.
+          </p>
+<p>
+            Initialization can be done
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                explicitly on the curret thread. Basically it works like a thread
+                local storage from inside the thread.
+              </li></ul></div>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
+<span class="keyword">void</span> <span class="identifier">func</span><span class="special">()</span> <span class="special">{</span> <span class="comment">// current thread
+</span>    <span class="comment">// ...
+</span>    <span class="identifier">ptr</span><span class="special">.</span><span class="identifier">reset</span><span class="special">(</span><span class="identifier">p</span><span class="special">);</span>
+    <span class="comment">// ...
+</span><span class="special">}</span>
+</pre>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                When we associate a thread decoration to the thread_specific_shared_ptr<>
+                we initialize implicitly every thread created with a thread_decorator.
+              </li></ul></div>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
+<span class="keyword">void</span> <span class="identifier">myclass_setup</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">ptr</span><span class="special">.</span><span class="identifier">reset</span><span class="special">(</span><span class="keyword">new</span> <span class="identifier">myclass</span><span class="special">(</span><span class="identifier">any</span> <span class="identifier">specific</span> <span class="identifier">parameters</span><span class="special">));</span>
+<span class="special">}</span>
+<span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_decoration</span> <span class="identifier">myclass_decoration</span><span class="special">(</span><span class="identifier">myclass_setup</span><span class="special">);</span>
+
+<span class="keyword">void</span> <span class="identifier">func</span><span class="special">()</span> <span class="special">{</span> <span class="comment">// ptr.reset(p); done implicitly
+</span>
+<span class="special">}</span>
+
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">=</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_decorated_thread</span><span class="special">(</span><span class="identifier">func</span><span class="special">);</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_on_the_current_thread"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_on_the_current_thread" title="Obtain the pointer to the thread-specific object on the current thread">Obtain
+          the pointer to the thread-specific object on the current thread</a>
+</h5></div></div></div>
+<p>
+            All functions known from boost::thread_specific_ptr are available except
+            the release function. The value for the current thread can be obtained
+            using the <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code>
+            member function, or by using the <code class="computeroutput"><span class="special">*</span></code>
+            and <code class="computeroutput"><span class="special">-></span></code> pointer deference
+            operators.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">func</span><span class="special">()</span> <span class="special">{</span>
+<span class="special">{</span> <span class="comment">// current thread
+</span>    <span class="comment">// ...
+</span>    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">ptr</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">ptr</span><span class="special">.</span><span class="identifier">reset</span><span class="special">(</span><span class="keyword">new</span> <span class="identifier">myclass</span><span class="special">);</span>
+    <span class="comment">// ...
+</span>    <span class="identifier">ptr</span><span class="special">-></span><span class="identifier">someFct</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_of_another_thread"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_of_another_thread" title="Obtain the pointer to the thread-specific object of another thread">Obtain
+          the pointer to the thread-specific object of another thread</a>
+</h5></div></div></div>
+<p>
+            Besides, other threads can get access to the data provided a thread::id
+            by:
+          </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">=</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_decorated_thread</span><span class="special">(</span><span class="identifier">func</span><span class="special">);</span>
+
+<span class="identifier">ptr</span><span class="special">[</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()]-></span><span class="identifier">foo</span><span class="special">();</span>
+</pre>
+<p>
+            where <code class="computeroutput"><span class="identifier">foo</span><span class="special">()</span></code>
+            is a function of <code class="computeroutput"><span class="identifier">myclass</span></code>.
+          </p>
+<p>
+            This could work or not. The issue appears as we can get a reference to
+            a thread before the thread has started, so the setting of the thread
+            specific context could be not yet done. One way to manage with this error
+            is to get the shared pointer and check if it contains something or not.
+          </p>
+<pre class="programlisting"><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">shp</span> <span class="special">=</span> <span class="identifier">ptr</span><span class="special">[</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()]-></span><span class="identifier">foo</span><span class="special">();</span>
+<span class="keyword">if</span> <span class="special">(</span><span class="identifier">shp</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special">!=</span> <span class="number">0</span><span class="special">)</span> <span class="identifier">shp</span><span class="special">-></span><span class="identifier">foo</span><span class="special">();</span>
+<span class="keyword">else</span> <span class="special">...</span>
+</pre>
+<p>
+            When we need this we can pool:
+          </p>
+<pre class="programlisting"><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">shp</span><span class="special">;</span>
+<span class="keyword">do</span> <span class="special">{</span>
+    <span class="identifier">shp</span> <span class="special">=</span> <span class="identifier">ptr</span><span class="special">[</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()]-></span><span class="identifier">foo</span><span class="special">();</span>
+<span class="special">}</span> <span class="keyword">while</span><span class="special">(</span><span class="identifier">shp</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special">==</span> <span class="number">0</span><span class="special">);</span>
+<span class="identifier">shp</span><span class="special">-></span><span class="identifier">foo</span><span class="special">();</span>
+</pre>
+<p>
+            The library provides a synchonization mechanism to solve this issue.
+            The wait_and_get() function allows a thread to synchronize with the setting
+            from another thread.
+          </p>
+<pre class="programlisting"><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">shp</span> <span class="special">=</span> <span class="identifier">ptr</span><span class="special">.</span><span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">());</span>
+<span class="identifier">shp</span><span class="special">-></span><span class="identifier">foo</span><span class="special">();</span>
+</pre>
+<p>
+            or
+          </p>
+<pre class="programlisting"><span class="identifier">ptr</span><span class="special">.</span><span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()-></span><span class="identifier">foo</span><span class="special">();</span>
+</pre>
+<p>
+            In order to ensure that the decorations have been called, a cleaner and
+            safer option is not to return the thread until it has been started. This
+            behavior is obtained each time the thread is created with an <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code> decorator when
+            using the Boost.Async library, as
+          </p>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">basic_threader_decorator</span> <span class="identifier">ae</span><span class="special">;</span>
+<span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">th</span><span class="special">,</span> <span class="identifier">bith</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">func</span><span class="special">));</span>
+<span class="comment">// here you are sure all the decorations have been called
+</span><span class="comment">// so we can access any thread_specific_shared_ptr of the created thread.
+</span></pre>
+<p>
+            The lifetime of the myclass instance is managed by a shared_ptr. One
+            reference is held by the thread (by means of a tss), a second is held
+            by the thread::id to shared_ptr<T> map and additional references
+            might be held by other threads, obtained by <code class="computeroutput"><span class="special">*</span><span class="identifier">pmyclass</span><span class="special">[</span><span class="identifier">th</span><span class="special">]</span></code>.
+          </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.iterating_through_all_the_thread_specific_context"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.iterating_through_all_the_thread_specific_context" title="Iterating through all the thread specific context">Iterating
+          through all the thread specific context</a>
+</h5></div></div></div>
+<p>
+            Another use case appears when some global controller needs to access
+            the thread specific data of all the threads. Several approaches are here
+            possible; the library has choosen to provide a map getter using a external
+            locking mechanism that 'ensure' that the map access is locked during
+            the map query.
+          </p>
+<pre class="programlisting"><span class="special">{</span>
+    <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">>::</span><span class="identifier">lock_type</span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">ptr</span><span class="special">.</span><span class="identifier">get_mutex</span><span class="special">());</span>
+    <span class="keyword">const</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">>::</span><span class="identifier">map_type</span> <span class="identifier">amap</span> <span class="special">=</span> <span class="identifier">ptr</span><span class="special">.</span><span class="identifier">get_map</span><span class="special">(</span><span class="identifier">lock</span><span class="special">);</span>
+    <span class="comment">// use the map
+</span><span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.deleting_the_context"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.deleting_the_context" title="Deleting the context">Deleting
+          the context</a>
+</h5></div></div></div>
+<p>
+            When a thread exits, the objects associated with each <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> instance is not inmediately destroyed
+            due to its shared nature. It is detached from the current thread and
+            removed from the map. Only when there are no more references to the shared
+            pointer it will be destroyed. By default, the object pointed to by a
+            pointer <code class="computeroutput"><span class="identifier">p</span></code> is destroyed
+            by invoking <code class="computeroutput"><span class="keyword">delete</span> <span class="identifier">p</span></code>,
+            but this can be overridden for a specific instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> by providing a deleter routine
+            to the constructor. In this case, the object is destroyed by invoking
+            <code class="computeroutput"><span class="identifier">deleter</span><span class="special">(</span><span class="identifier">p</span><span class="special">)</span></code>
+            where <code class="computeroutput"><span class="identifier">deleter</span></code> is the
+            deleter routine supplied to the constructor. The deleter function is
+            called only when there are no more references to the shared pointer.
+          </p>
+<pre class="programlisting"><span class="comment">// Add use of deleter !!!
+</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.cleanup_at_thread_exit"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.cleanup_at_thread_exit" title="Cleanup at thread exit">Cleanup
+          at thread exit</a>
+</h5></div></div></div>
+<p>
+            When a thread exits, the objects associated with each thread_specific_shared_ptr<>
+            instance is not inmediately destroyed due to its shared nature. Only
+            when there are no more references to the shared pointer it will be destroyed.
+            By default, the object pointed to by a pointer p is destroyed by invoking
+            delete p, but this can be overridden for a specific instance of boost::thread_specific_shared_ptr<>
+            by providing a cleanup routine to the constructor. In this case, the
+            object is destroyed by invoking func(p) where func is the cleanup routine
+            supplied to the constructor. The cleanup functions are called in an unspecified
+            order. If a cleanup routine sets the value of associated with an instance
+            of boost::thread_specific_shared_ptr<> that has already been cleaned
+            up, that value is added to the cleanup list. Cleanup finishes when there
+            are no outstanding instances of boost::thread_specific_shared_ptr<>
+            with values. If a cleanup routine sets the value associated with an instance
+            of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code>
+            that has already been cleaned up, that value is added to the cleanup
+            list. Cleanup finishes when there are no outstanding instances of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code>
+            with values.
+          </p>
+<pre class="programlisting"><span class="comment">// Add use of at thread_exit!!!
+</span></pre>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive" title="Keep alive">Keep
+        alive</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Interface</span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_mechanism_initialization">Keep
+          alive mechanism initialization</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads">Which
+          threads can be controlled?</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling">Enabling
+          the keep alive mechanism</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling">Disabling
+          the keep alive mechanism</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent">Configuring
+          the dead persistency</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from_the_current_thread">Access
+          from the current thread</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from__the_controller_thread">Access
+          from the controller thread</a></span></dt>
+</dl></div>
+<p>
+          We will use the implementation of the keep alive mechanism as tutorial
+          for the thread decorators, thread specific shared pointers and the keep
+          alive mechanism itself.
+        </p>
+<p>
+          We want to detect situations on which a thread is looping or blocked on
+          some component. The user needs to state when this mechanism is enabled
+          or disabled.
+        </p>
+<p>
+          Since the only purpose is to find threads that don't work, the thread needs
+          to say if it is alive to a controller. The controler requests at predefined
+          intervals if the thread is dead, and in this case it will call a user specific
+          function which by default aborts the program.
+        </p>
+<p>
+          A thread is considered dead if during a given period the number of checkins
+          is inferior to a given threshold. These two parameters are given when the
+          keep alive mechanislm is enabled. At the begining of a thread the keep
+          alive mechanism is disabled.
+        </p>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.interface"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.interface" title="Interface">Interface</a>
+</h5></div></div></div>
+<p>
+            Next follows the keep alive interface.
+          </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">interthreads</span> <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">this_thread</span> 	<span class="special">{</span>
+        <span class="keyword">class</span> <span class="identifier">enable_keep_alive</span> <span class="special">{</span>
+        <span class="keyword">public</span><span class="special">:</span>
+            <span class="identifier">enable_keep_alive</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">periods</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">size_t</span> <span class="identifier">checkins</span><span class="special">=</span><span class="number">1</span><span class="special">);</span>
+            <span class="special">~</span><span class="identifier">enable_keep_alive</span><span class="special">();</span>
+        <span class="special">};</span>
+
+        <span class="keyword">class</span> <span class="identifier">disable_keep_alive</span> <span class="special">{</span>
+        <span class="keyword">public</span><span class="special">:</span>
+            <span class="identifier">disable_keep_alive</span><span class="special">();</span>
+            <span class="special">~</span><span class="identifier">disable_keep_alive</span><span class="special">();</span>
+        <span class="special">};</span>
+
+        <span class="keyword">void</span> <span class="identifier">keep_alive_point</span><span class="special">();</span>
+        <span class="keyword">bool</span> <span class="identifier">keep_alive_enabled</span><span class="special">();</span>
+
+        <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="special">(*</span><span class="identifier">on_dead_thread_type</span><span class="special">)(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span><span class="special">,</span> <span class="identifier">thread</span><span class="special">*);</span>
+        <span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</span><span class="special">,</span> <span class="identifier">thread</span><span class="special">*</span> <span class="identifier">th</span><span class="special">=</span><span class="number">0</span><span class="special">);</span>
+
+    <span class="special">}</span>
+    <span class="keyword">bool</span> <span class="identifier">keep_alive_enabled</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span><span class="special">,</span> <span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</span><span class="special">,</span> <span class="identifier">thread</span><span class="special">*</span> <span class="identifier">th</span><span class="special">=</span><span class="number">0</span><span class="special">);</span>
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_mechanism_initialization"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_mechanism_initialization" title="Keep alive mechanism initialization">Keep
+          alive mechanism initialization</a>
+</h5></div></div></div>
+<p>
+            There is a single controller <code class="computeroutput"><span class="identifier">keep_alive_mgr</span></code>.
+            The controler needs to access some thread specific shared context <code class="computeroutput"><span class="identifier">thread_keep_alive_ctx</span></code> to be able to
+            control a thread.
+          </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">detail</span> <span class="special">{</span>
+    <span class="keyword">struct</span> <span class="identifier">thread_keep_alive_ctx</span> <span class="special">{</span>
+        <span class="comment">// ...
+</span>        <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">init</span><span class="special">();</span>
+
+        <span class="keyword">typedef</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">></span> <span class="identifier">tssp</span><span class="special">;</span>
+        <span class="keyword">static</span> <span class="identifier">tssp</span> <span class="identifier">instance_</span><span class="special">;</span>
+        <span class="keyword">static</span> <span class="identifier">thread_decoration</span> <span class="identifier">initializer_</span><span class="special">;</span>
+        <span class="identifier">thread_keep_alive_internal</span><span class="special">*</span> <span class="identifier">data_</span><span class="special">;</span>
+    <span class="special">};</span>
+    <span class="keyword">struct</span> <span class="identifier">keep_alive_mgr</span> <span class="special">{</span>
+        <span class="comment">// ...
+</span>        <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">initialize</span><span class="special">()</span> <span class="special">{</span>
+            <span class="identifier">boost</span><span class="special">::</span><span class="identifier">call_once</span><span class="special">(</span><span class="identifier">flag</span><span class="special">,</span> <span class="identifier">init</span><span class="special">);</span>
+        <span class="special">}</span>
+        <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">init</span><span class="special">()</span> <span class="special">{</span>
+            <span class="identifier">instance_</span><span class="special">=</span><span class="keyword">new</span> <span class="identifier">keep_alive_mgr</span><span class="special">();</span>
+        <span class="special">}</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">thread_</span><span class="special">;</span>
+        <span class="keyword">static</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">once_flag</span> <span class="identifier">flag_</span><span class="special">;</span>
+        <span class="keyword">static</span> <span class="identifier">keep_alive_mgr</span><span class="special">*</span> <span class="identifier">instance_</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<p>
+            The initialization of the controller itself and the setting the thread
+            specific context is done using an internal thread decoration <code class="computeroutput"><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">initializer_</span></code> with <code class="computeroutput"><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">init</span></code>
+            as setup function.
+          </p>
+<pre class="programlisting"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">></span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance_</span><span class="special">;</span>
+<span class="identifier">thread_decoration</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">initializer_</span><span class="special">(</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">init</span><span class="special">);</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">once_flag</span> <span class="identifier">keep_alive_mgr</span><span class="special">::</span><span class="identifier">flag</span><span class="special">;</span>
+</pre>
+<p>
+            This setup function will initialize the <code class="computeroutput"><span class="identifier">keep_alive_mgr</span></code>
+            and then set the <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> with a new <code class="computeroutput"><span class="identifier">thread_keep_alive_ctx</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">init</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">keep_alive_mgr</span><span class="special">::</span><span class="identifier">initialize</span><span class="special">();</span>
+    <span class="identifier">instance_</span><span class="special">.</span><span class="identifier">reset</span><span class="special">(</span><span class="keyword">new</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">());</span>
+<span class="special">}</span>
+</pre>
+<p>
+            The <code class="computeroutput"><span class="identifier">keep_alive_mgr</span><span class="special">::</span><span class="identifier">initialize</span></code> function ensures just that
+            the init function is called once using the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">call_once</span></code>.
+            This <code class="computeroutput"><span class="identifier">init</span></code> function creates
+            the instance of the <code class="computeroutput"><span class="identifier">keep_alive_mgr</span></code>
+            singleton.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">keep_alive_mgr</span><span class="special">::</span><span class="identifier">initialize</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">call_once</span><span class="special">(</span><span class="identifier">flag_</span><span class="special">,</span> <span class="identifier">init</span><span class="special">);</span>
+<span class="special">}</span>
+<span class="keyword">void</span> <span class="identifier">keep_alive_mgr</span><span class="special">::</span><span class="identifier">init</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">instance_</span><span class="special">=</span><span class="keyword">new</span> <span class="identifier">keep_alive_mgr</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads" title="Which threads can be controlled?">Which
+          threads can be controlled?</a>
+</h5></div></div></div>
+<p>
+            As the keep alive mechanism uses a thread decoration, the user needs
+            to explicitly call the <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">decorate</span></code>
+            function at the begining of the thread function or by wrapping the thread
+            function. Instead of having a specific function to call or use a thread
+            function wrapper, the keep alive uses the functions provided by the thread
+            decorator (<code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">decorate</span></code> and <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_decorator</span></code>).
+            So we must either call <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">decorate</span></code>
+            explicitly on the thread function
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">bith</span><span class="special">::</span><span class="identifier">decorate</span><span class="special">();</span>
+    <span class="comment">// ...
+</span><span class="special">}</span>
+</pre>
+<p>
+            or create the thread with the <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_decorator</span></code>
+            wrapper
+          </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">(</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_decorator</span><span class="special">(</span><span class="identifier">fct</span><span class="special">));</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling" title="Enabling the keep alive mechanism">Enabling
+          the keep alive mechanism</a>
+</h5></div></div></div>
+<p>
+            To be controled by the keep alive manager we need to enable the mechanism
+            using the enable_keep_alive. By default this enabler requires the application
+            to do at least one check point every 2 seconds using the <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">keep_alive_point</span><span class="special">()</span></code>
+            function.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">using</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">;</span>
+
+    <span class="comment">// ...
+</span>    <span class="identifier">enable_keep_alive</span> <span class="identifier">ena</span><span class="special">;</span>
+    <span class="comment">// states that the thread will be declared dead if threre are
+</span>    <span class="comment">// less that 1 check_points in 2 seconds.
+</span>    <span class="keyword">for</span><span class="special">(;;)</span> <span class="special">{</span>
+        <span class="comment">// do a check point
+</span>        <span class="identifier">keep_alive_point</span><span class="special">();</span>
+        <span class="comment">// ...
+</span>    <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling" title="Disabling the keep alive mechanism">Disabling
+          the keep alive mechanism</a>
+</h5></div></div></div>
+<p>
+            Some times we need to do an external task that could take an undefined
+            time. We can then disable the keep alive mechanisme by using a disabler
+            <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">disable_keep_alive</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">using</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">;</span>
+
+    <span class="comment">// ...
+</span>    <span class="comment">// states that the thread will be declared dead if threre are
+</span>    <span class="comment">// less that 1 check_points in 2 seconds.
+</span>    <span class="identifier">enable_keep_alive</span> <span class="identifier">enabler</span><span class="special">;</span>
+    <span class="keyword">for</span><span class="special">(;;)</span> <span class="special">{</span>
+        <span class="comment">// do a check point
+</span>        <span class="identifier">keep_alive_point</span><span class="special">();</span>
+
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">cnd</span><span class="special">)</span> <span class="special">{</span>
+            <span class="comment">// when a blocking task spending an undefined time
+</span>            <span class="comment">// you can disable the keep alive mechanism
+</span>            <span class="identifier">disable_keep_alive</span> <span class="identifier">disabler</span><span class="special">;</span>
+
+        <span class="special">}</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+            If on the contrary we don't want to disable the keep alive mechanism,
+            it should be interesting to do a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">interruption_check_point</span><span class="special">()</span></code> just after the blocking task. In this
+            way if the task takes too much time and the thread is declared dead,
+            the possibility to manage the keep alive error by interrupting the dead
+            thread remains, once the task is finished.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">;</span>
+    <span class="keyword">using</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">;</span>
+
+    <span class="comment">// ...
+</span>    <span class="comment">// states that the thread will be declared dead if threre are
+</span>    <span class="comment">// less that 1 check_points in 2 seconds.
+</span>    <span class="identifier">enable_keep_alive</span> <span class="identifier">enabler</span><span class="special">;</span>
+    <span class="keyword">for</span><span class="special">(;;)</span> <span class="special">{</span>
+        <span class="comment">// do a check point
+</span>        <span class="identifier">keep_alive_point</span><span class="special">();</span>
+
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">cnd</span><span class="special">)</span> <span class="special">{</span>
+            <span class="comment">// when a blocking task spending an undefined time
+</span>            <span class="comment">// you can disable the keep alive mechanism
+</span>            <span class="identifier">unknow_time_task</span><span class="special">();</span>
+            <span class="identifier">interruption_check_point</span><span class="special">();</span>
+
+        <span class="special">}</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent" title="Configuring the dead persistency">Configuring
+          the dead persistency</a>
+</h5></div></div></div>
+<p>
+            The default enabling parameters could be too restrictive in some cases.
+            But the <code class="computeroutput"><span class="identifier">enable_keep_alive</span></code>
+            configures it with the two parameters. We can declare a thread dead when
+            the thread has not done a number of checkins in a given period. This
+            can be useful when one knows the time a given task should take.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">using</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">;</span>
+
+    <span class="comment">// ...
+</span>    <span class="comment">// states that the thread will be declared dead if threre are
+</span>    <span class="comment">// less that 4 check_points in 30 seconds.
+</span>    <span class="identifier">enable_keep_alive</span> <span class="identifier">enabler</span><span class="special">(</span><span class="number">15</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+    <span class="keyword">for</span><span class="special">(;;)</span> <span class="special">{</span>
+
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">cnd</span><span class="special">)</span> <span class="special">{</span>
+            <span class="comment">// it is know that this task will take no more than 15 seconds
+</span>            <span class="identifier">enable_keep_alive</span> <span class="identifier">control</span><span class="special">(</span><span class="number">15</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+            <span class="identifier">know_time_task</span><span class="special">();</span>
+            <span class="identifier">keep_alive_point</span><span class="special">();</span>
+            <span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">interruprion_check_point</span><span class="special">();</span>
+        <span class="special">}</span>
+
+
+    <span class="special">}</span>
+    <span class="comment">// ...
+</span><span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from_the_current_thread"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from_the_current_thread" title="Access from the current thread">Access
+          from the current thread</a>
+</h5></div></div></div>
+<p>
+            But how all this works. We start with enablers/disablers. Enablers/disablers
+            use RAII, so they can be nested and the context be restored on the destructor.
+            At the construction they store the current state of the keep alive of
+            this thread using the backup function and then they enable/disable the
+            KA mechanism. On destruction they restore the backed up context.
+          </p>
+<pre class="programlisting"><span class="identifier">enable_keep_alive</span><span class="special">::</span><span class="identifier">enable_keep_alive</span><span class="special">(</span>
+        <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">periods</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">checkins</span><span class="special">)</span>
+<span class="special">{</span>
+    <span class="identifier">backup_</span><span class="special">=</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">()-></span><span class="identifier">backup</span><span class="special">(</span><span class="identifier">data_</span><span class="special">);</span>
+    <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">()-></span><span class="identifier">enable_keep_alive</span><span class="special">(</span><span class="identifier">periods</span><span class="special">,</span> <span class="identifier">checkins</span><span class="special">);</span>
+<span class="special">}</span>
+
+<span class="identifier">enable_keep_alive</span><span class="special">::~</span><span class="identifier">enable_keep_alive</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">()-></span><span class="identifier">restore</span><span class="special">(</span><span class="identifier">backup_</span><span class="special">);</span>
+<span class="special">}</span>
+
+<span class="identifier">disable_keep_alive</span><span class="special">::</span><span class="identifier">disable_keep_alive</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">backup_</span><span class="special">=</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">()-></span><span class="identifier">backup</span><span class="special">(</span><span class="identifier">data_</span><span class="special">);</span>
+    <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">()-></span><span class="identifier">disable_keep_alive</span><span class="special">();</span>
+<span class="special">}</span>
+
+<span class="identifier">disable_keep_alive</span><span class="special">::~</span><span class="identifier">disable_keep_alive</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">()-></span><span class="identifier">restore</span><span class="special">(</span><span class="identifier">backup_</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+            These functions are quite simple
+          </p>
+<pre class="programlisting"><span class="identifier">thread_keep_alive_internal</span><span class="special">*</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">backup</span><span class="special">(</span><span class="identifier">thread_keep_alive_internal</span><span class="special">*</span> <span class="identifier">new_data</span><span class="special">)</span> <span class="special">{</span>
+    <span class="identifier">thread_keep_alive_internal</span><span class="special">*</span> <span class="identifier">the_backup</span><span class="special">=</span><span class="identifier">data_</span><span class="special">;</span>
+    <span class="identifier">data_</span><span class="special">=</span><span class="identifier">new_data</span>
+    <span class="keyword">return</span> <span class="identifier">the_backup</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">void</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">restore</span><span class="special">(</span><span class="identifier">thread_keep_alive_internal</span><span class="special">*</span> <span class="identifier">backup</span><span class="special">)</span> <span class="special">{</span>
+    <span class="identifier">data_</span><span class="special">=</span><span class="identifier">backup</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">void</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">enable_keep_alive</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">data_</span><span class="special">-></span><span class="identifier">enabled_</span><span class="special">=</span><span class="keyword">true</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="keyword">void</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">disable_keep_alive</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">data_</span><span class="special">-></span><span class="identifier">enabled_</span> <span class="special">=</span> <span class="keyword">false</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+            Note that there is no need to check if the <code class="computeroutput"><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance_</span></code>
+            contains a pointer because we have ensured that at initialization time.
+          </p>
+<p>
+            Next there is the central function <code class="computeroutput"><span class="identifier">keep_alive_point</span><span class="special">()</span></code>. This function does nothing more than
+            relaying the request to the specific context of this thread. This function
+            just increases the number of <code class="computeroutput"><span class="identifier">checkins_</span></code>.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">keep_alive_point</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">()-></span><span class="identifier">check_point</span><span class="special">();</span>
+<span class="special">}</span>
+
+<span class="keyword">void</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">check_point</span><span class="special">()</span> <span class="special">{</span>
+    <span class="special">++</span><span class="identifier">data_</span><span class="special">-></span><span class="identifier">checkins_</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+            The <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code> does the same. This function just stores
+            the on-dead action.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</span><span class="special">,</span> <span class="identifier">thread</span><span class="special">*</span> <span class="identifier">th</span><span class="special">)</span> <span class="special">{</span>
+    <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">()-></span><span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">fct</span><span class="special">,</span> <span class="identifier">th</span><span class="special">);</span>
+<span class="special">}</span>
+
+    <span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</span><span class="special">,</span> <span class="identifier">thread</span><span class="special">*</span> <span class="identifier">th</span><span class="special">)</span> <span class="special">{</span>
+        <span class="identifier">data_</span><span class="special">-></span><span class="identifier">on_dead_</span><span class="special">=</span><span class="identifier">fct</span><span class="special">;</span>
+        <span class="identifier">data_</span><span class="special">-></span><span class="identifier">thread_ptr_</span><span class="special">=</span><span class="identifier">th</span><span class="special">;</span>
+    <span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from__the_controller_thread"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from__the_controller_thread" title="Access from the controller thread">Access
+          from the controller thread</a>
+</h5></div></div></div>
+<p>
+            Up to now we have seen the use of <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span></code>
+            as a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_ptr</span></code>, i.e. it is used
+            from the current thread.
+          </p>
+<p>
+            We will see now how the controler behaves. The single instance of the
+            keep_alive_mgr has been created on the init function.
+          </p>
+<p>
+            The constructor just constructs a thread with the loop function.
+          </p>
+<pre class="programlisting"><span class="identifier">keep_alive_mgr</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">end_</span><span class="special">(</span><span class="keyword">false</span><span class="special">),</span> <span class="identifier">thread_</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="identifier">loop</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">end_</span><span class="special">)))</span>  <span class="special">{}</span>
+</pre>
+<p>
+            The loop function will iterate, every second, over all the thread_keep_alive_ctx
+            threads specific contexts asking them to control themselves. Note that
+            as the map can be modified when threads are created or finished, we need
+            to protect the iteration externally with a lock on the protecting mutex.
+          </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">loop</span><span class="special">(</span><span class="keyword">bool</span><span class="special">&</span> <span class="identifier">end</span><span class="special">)</span> <span class="special">{</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">xtime</span> <span class="identifier">t</span><span class="special">;</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">xtime_get</span><span class="special">(&</span><span class="identifier">t</span><span class="special">,</span><span class="number">1</span><span class="special">);</span>
+    <span class="keyword">while</span><span class="special">(!</span><span class="identifier">end</span><span class="special">)</span> <span class="special">{</span>
+        <span class="identifier">t</span><span class="special">.</span><span class="identifier">sec</span> <span class="special">+=</span> <span class="number">1</span><span class="special">;</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">sleep</span><span class="special">(</span><span class="identifier">t</span><span class="special">);</span>
+        <span class="identifier">lock_type</span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">().</span><span class="identifier">get_mutex</span><span class="special">());</span>
+        <span class="keyword">const</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">tssp</span><span class="special">::</span><span class="identifier">map_type</span><span class="special">&</span> <span class="identifier">tmap</span><span class="special">(</span>
+            <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">().</span><span class="identifier">get_map</span><span class="special">());</span>
+        <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">tssp</span><span class="special">::</span><span class="identifier">map_type</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">it</span> <span class="special">=</span> <span class="identifier">tmap</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
+        <span class="keyword">for</span> <span class="special">(;</span><span class="identifier">it</span> <span class="special">!=</span> <span class="identifier">tmap</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span> <span class="special">++</span><span class="identifier">it</span><span class="special">)</span> <span class="special">{</span>
+            <span class="identifier">it</span><span class="special">-></span><span class="identifier">second</span><span class="special">.</span><span class="identifier">control</span><span class="special">(</span><span class="identifier">it</span><span class="special">-></span><span class="identifier">first</span><span class="special">);</span>
+        <span class="special">}</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+            The thread loops until the end variable is true. In order to stop proprely
+            this thread we will use the destructor of singleton instance. This end
+            variable is a reference to a variable stored on the keep_alive_mgr context
+            which has been initialized staticly. So its destrcutor will be called
+            when the program finishes. So it is up to the destructor to set this
+            variable and wait for the thread completion
+          </p>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">keep_alive_mgr</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">end_</span><span class="special">=</span><span class="keyword">true</span><span class="special">;</span>
+    <span class="identifier">thread_</span><span class="special">.</span><span class="identifier">join</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+<p>
+            The thread_keep_alive_ctx::control function behaves as follows: if it
+            is enabled, it decreases the number of remaining periods and if the thread
+            is declared dead it executes the on dead action and resets the check-ins
+            and periods.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">control</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">data_</span><span class="special">-></span><span class="identifier">enabled_</span><span class="special">)</span> <span class="special">{</span>
+        <span class="special">--</span><span class="identifier">data_</span><span class="special">-></span><span class="identifier">periods_</span><span class="special">;</span>
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">dead</span><span class="special">())</span> <span class="special">{</span>
+            <span class="identifier">on_dead</span><span class="special">(</span><span class="identifier">id</span><span class="special">);</span>
+            <span class="identifier">data_</span><span class="special">-></span><span class="identifier">checkins_</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
+            <span class="identifier">data_</span><span class="special">-></span><span class="identifier">periods_</span><span class="special">=</span><span class="identifier">data_</span><span class="special">-></span><span class="identifier">total_periods</span><span class="special">;</span>
+        <span class="special">}</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple" title="Thread Tuple">Thread
+        Tuple</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching">Launching
+          thread tuple</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions">Exceptions
+          in thread functions</a></span></dt>
+<dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining">Joining
+          and detaching</a></span></dt>
+<dt><span class="section">Interruption</span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching" title="Launching thread tuple">Launching
+          thread tuple</a>
+</h5></div></div></div>
+<p>
+            A new thread tuple is launched by passing a collection of objects of
+            some callable type, that can be invoked with no parameters. These objects
+            are then copied into internal storage, and invoked on the newly-created
+            threads of execution. If the objects must not (or cannot) be copied,
+            then <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span></code> can be used to pass in a reference
+            to the function object. In this case, the user of <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> must ensure that the referred-to
+            object outlives the newly-created thread of execution.
+          </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">callable</span>
+<span class="special">{</span>
+    <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()();</span>
+<span class="special">};</span>
+
+<span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="identifier">copies_are_safe</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="identifier">callable</span> <span class="identifier">x</span><span class="special">;</span>
+    <span class="identifier">callable</span> <span class="identifier">y</span><span class="special">;</span>
+    <span class="keyword">return</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</span><span class="special">>(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="special">}</span> <span class="comment">// x and y are destroyed, but the newly-created threads have a copy, so this is OK
+</span>
+<span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="identifier">oops</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="identifier">callable</span> <span class="identifier">x</span><span class="special">;</span>
+    <span class="identifier">callable</span> <span class="identifier">y</span><span class="special">;</span>
+    <span class="keyword">return</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</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">x</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">y</span><span class="special">));</span>
+<span class="special">}</span> <span class="comment">// x and y are destroyed, but the newly-created threads still have a reference
+</span>  <span class="comment">// this leads to undefined behaviour
+</span></pre>
+<p>
+            If you wish to construct an instance of <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> with a function or callable object
+            that requires arguments to be supplied, this can NOT be done by passing
+            additional arguments as is the case for threads to the <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
+            constructor, and you will need to use bind explicitly.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">find_the_question</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">the_answer</span><span class="special">);</span>
+
+<span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="identifier">deep_thought_2</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="identifier">find_the_question</span><span class="special">,</span><span class="number">42</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="identifier">find_the_question</span><span class="special">,</span><span class="number">16</span><span class="special">));</span>
+</pre>
+<p>
+            The arguments are <span class="emphasis"><em>copied</em></span> into the internals of Boost.Bind
+            structure: if a reference is required, use <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span></code>,
+            just as for references to callable functions.
+          </p>
+<p>
+            The limit on the number of additional arguments that can be passed are
+            specified by the Boost.Bind.
+          </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions" title="Exceptions in thread functions">Exceptions
+          in thread functions</a>
+</h5></div></div></div>
+<p>
+            If the function or callable object passed to the <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> constructor propagates an exception
+            that is not of type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code>,
+            when invoked, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">()</span></code>
+            is called.
+          </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining" title="Joining and detaching">Joining
+          and detaching</a>
+</h5></div></div></div>
+<p>
+            When the <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> object that represents a collection
+            of threads of execution is destroyed, the threads become <span class="emphasis"><em>detached</em></span>.
+            Once threads are detached, they will continue executing until the invocation
+            of the functions or callable objects supplied on construction completes,
+            or the program is terminated. The threads of a <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> can also be detached by explicitly
+            invoking the detach member function on the <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> object. In this case, all the
+            threads of the <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> object cease to represent the
+            now-detached thread, and instead represents 'Not-a-Thread.
+          </p>
+<p>
+            In order to wait for a tuple of threads of execution to finish, the
+            <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+            or <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code>
+            member functions of the <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> object must be used. <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+            will block the calling thread until the all the threads represented by
+            the <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
+            object have completed. If the threads of execution represented by the
+            <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
+            object have already completed, or the <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> objects represents <span class="emphasis"><em>Not-a-Thread</em></span>,
+            then <code class="computeroutput"><span class="identifier">join</span><span class="special">()</span></code>
+            returns immediately. <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code> is similar, except that a call to
+            <code class="computeroutput"><span class="identifier">timed_join</span><span class="special">()</span></code>
+            will also return if the threads being waited for do not complete when
+            the specified time has elapsed.
+          </p>
+<p>
+            There is also a possibility to wait until the first thread completes,
+            interrupting the rest of the threads.
+          </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_interruption"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_interruption" title="Interruption">Interruption</a>
+</h5></div></div></div>
+<p>
+            A tuple of running threads can be <span class="emphasis"><em>interrupted</em></span> by
+            invoking the <code class="computeroutput"><span class="identifier">interrupt_all</span><span class="special">()</span></code> member function of the corresponding
+            <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
+            object. When the interrupted threads next execute one of the specified
+            <span class="emphasis"><em>interruption points</em></span> (or if it is currently <span class="emphasis"><em>blocked</em></span>
+            whilst executing one) with interruption enabled, then a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_interrupted</span></code> exception will be
+            thrown in the interrupted thread. If not caught, this will cause the
+            execution of the interrupted thread to terminate. As with any other exception,
+            the stack will be unwound, and destructors for objects of automatic storage
+            duration will be executed.
+          </p>
+<p>
+            See the Boost.Threads
+            library on how to avoid a thread being interrupted.
+          </p>
+<p>
+            At any point, the interruption state for the current thread can be queried
+            by calling <code class="computeroutput"><span class="identifier">interruption_enabled</span></code>.
+          </p>
+<p>
+            <a name="interruption_points"></a> See the Boost.Threads library for the Predefined
+            Interruption Points.
+          </p>
+</div>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.users_guide.examples"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.examples" title="Examples">Examples</a>
+</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="users_guide.html#toward_boost_interthreads.users_guide.examples.thread_safe_deferred_traces">Thread
+        safe deferred traces</a></span></dt></dl></div>
+<p>
+        This section do includes complete examples using the library.
+      </p>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="toward_boost_interthreads.users_guide.examples.thread_safe_deferred_traces"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.examples.thread_safe_deferred_traces" title="Thread safe deferred traces">Thread
+        safe deferred traces</a>
+</h4></div></div></div>
+<p>
+          When executing on a multi thread environment, the output lines on std::cout
+          could interleave. We can synchronize these outputs with a global mutex
+        </p>
+<pre class="programlisting"><span class="special">{</span>
+   <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">></span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">global_cout_mutex</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="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>
+          This mutex could be the bottleneck of the system. Only one mutex resource
+          for all the user threads.
+        </p>
+<pre class="programlisting">U        U
+             /
+            /
+    U ----- R ----- U
+            |
+            |
+            U
+</pre>
+<p>
+          Another approach could be using a queue of output stream buffers for each
+          thread. Each buffer is timestamped with the creation date and there is
+          a concentrator that takes one by one the elements ordered by their timestamp.
+          Only the current thread can push on this queue because it is specific to
+          the thread. There is a single thread, the concentrator, that pops from
+          these queue. In this context we can ensure thread safety without locking
+          as far as the queue has at least two messages.
+        </p>
+<pre class="programlisting">U ----- R ------+
+                     \
+    U ----- R ------\
+                     \
+    U ----- R -------- C
+                     / /
+    U ----- R ------/ /
+                     /
+    U ----- R ------+
+</pre>
+<p>
+          This can be encapsulated in an async_ostream class
+        </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">async_ostream</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">stream</span><span class="special"><</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">></span> <span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="keyword">char</span>                    <span class="identifier">char_type</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">sink_tag</span>     <span class="identifier">category</span><span class="special">;</span>
+
+    <span class="identifier">async_ostream</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">flush</span><span class="special">();</span>
+<span class="special">};</span>
+
+<span class="keyword">extern</span> <span class="identifier">async_ostream</span> <span class="identifier">cout_</span><span class="special">;</span>
+</pre>
+<p>
+          With this interface the user can use cout_ as it used std::cout.
+        </p>
+<pre class="programlisting"><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>
+</pre>
+<p>
+          All the magic is in the <code class="computeroutput"><span class="keyword">template</span>
+          <span class="keyword">class</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">stream</span><span class="special"><></span></code>. The parameter must be a model
+          of a sink (See Boost.Iostreams). Here it is.
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">detail</span> <span class="special">{</span>
+    <span class="keyword">struct</span> <span class="identifier">async_ostream_sink</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">char</span>                            <span class="identifier">char_type</span><span class="special">;</span>
+        <span class="keyword">typedef</span>  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iostreams</span><span class="special">::</span><span class="identifier">sink_tag</span>     <span class="identifier">category</span><span class="special">;</span>
+        <span class="identifier">async_ostream_sink</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">);</span>
+        <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">);</span>
+        <span class="keyword">void</span> <span class="identifier">flush</span><span class="special">();</span>
+    <span class="keyword">private</span><span class="special">:</span>
+        <span class="keyword">friend</span> <span class="keyword">class</span> <span class="identifier">async_ostream_concentrator</span><span class="special">;</span>
+        <span class="keyword">friend</span> <span class="keyword">class</span> <span class="identifier">async_ostream</span><span class="special">;</span>
+        <span class="keyword">struct</span> <span class="identifier">impl</span><span class="special">;</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">impl</span><span class="special">></span> <span class="identifier">impl_</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<p>
+          This class declares the just minimum in order to model a sink. In addition,
+          in order to mask the implementation, the Pimpl idiom is used. The implementation
+          of these functions is straigtforward:
+        </p>
+<pre class="programlisting"><span class="identifier">async_ostream</span><span class="special">::</span><span class="identifier">async_ostream</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">)</span>
+    <span class="special">:</span> <span class="identifier">base_type</span><span class="special">(</span><span class="identifier">os</span><span class="special">)</span> <span class="special">{}</span>
+
+<span class="keyword">void</span> <span class="identifier">async_ostream</span><span class="special">::</span><span class="identifier">flush</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">this</span><span class="special">-></span><span class="identifier">base_type</span><span class="special">::</span><span class="identifier">flush</span><span class="special">();</span>
+    <span class="identifier">async_ostream</span><span class="special">&</span> <span class="identifier">d</span> <span class="special">=</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span>
+    <span class="identifier">d</span><span class="special">-></span><span class="identifier">flush</span><span class="special">();</span>
+<span class="special">}</span>
+
+<span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">)</span>
+    <span class="special">:</span> <span class="identifier">impl_</span><span class="special">(</span><span class="keyword">new</span> <span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">(</span><span class="identifier">os</span><span class="special">))</span> <span class="special">{}</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">impl_</span><span class="special">-></span><span class="identifier">write</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span><span class="identifier">n</span><span class="special">);</span>
+<span class="special">}</span>
+
+<span class="keyword">void</span> <span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">flush</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">impl_</span><span class="special">-></span><span class="identifier">flush</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+<p>
+          Let me continue with the handle of the Pimpl pattern:
+        </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span> <span class="special">{</span>
+    <span class="identifier">impl</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">);</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os_</span><span class="special">;</span>
+    <span class="identifier">tsss_type</span> <span class="identifier">tsss_</span><span class="special">;</span>
+    <span class="identifier">priority_queue_type</span> <span class="identifier">queue_</span><span class="special">;</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">thread_</span><span class="special">;</span>
+
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">);</span>
+
+    <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">terminate</span><span class="special">(</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">async_ostream_thread_ctx</span><span class="special">></span> <span class="identifier">that</span><span class="special">);</span>
+    <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">loop</span><span class="special">(</span><span class="identifier">impl</span><span class="special">*</span> <span class="identifier">that</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<p>
+          Of course we need to store a reference to the final ostream.
+        </p>
+<p>
+          The <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span>
+          <span class="identifier">tsss_</span></code> is used to encapsulate
+          the logic specific to each thread.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">async_ostream_thread_ctx</span><span class="special">></span> <span class="identifier">tsss_type</span><span class="special">;</span>
+</pre>
+<p>
+          A priority queue <code class="computeroutput"><span class="identifier">queue_</span></code>
+          will be used by the concentrator thread to order the stringstreams by date.
+        </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">detail</span><span class="special">::</span><span class="identifier">timestamped</span> <span class="special">{</span>
+    <span class="identifier">system_time</span> <span class="identifier">date_</span><span class="special">;</span>
+    <span class="keyword">unsigned</span> <span class="identifier">seq_</span><span class="special">;</span>
+    <span class="identifier">T</span> <span class="identifier">value_</span><span class="special">;</span>
+    <span class="keyword">void</span> <span class="identifier">reset_date</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">seq</span><span class="special">)</span> <span class="special">{</span>
+        <span class="identifier">date_</span> <span class="special">=</span> <span class="identifier">system_time</span><span class="special">();</span>
+        <span class="identifier">seq_</span> <span class="special">=</span> <span class="identifier">seq</span><span class="special">;</span>
+    <span class="special">}</span>
+    <span class="keyword">struct</span> <span class="identifier">ptr_comparator_gt</span> <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">timestamped</span><span class="special">*</span> <span class="identifier">value_type</span><span class="special">;</span>
+        <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&</span><span class="identifier">lhs</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&</span><span class="identifier">rhs</span><span class="special">)</span> <span class="special">{</span>
+            <span class="keyword">return</span> <span class="special">(</span><span class="identifier">lhs</span><span class="special">-></span><span class="identifier">date_</span> <span class="special">></span> <span class="identifier">rhs</span><span class="special">-></span><span class="identifier">date_</span><span class="special">)</span> <span class="special">?</span> <span class="keyword">true</span> <span class="special">:</span>
+                    <span class="special">(</span><span class="identifier">lhs</span><span class="special">-></span><span class="identifier">date_</span> <span class="special">==</span> <span class="identifier">rhs</span><span class="special">-></span><span class="identifier">date_</span><span class="special">)</span> <span class="special">&&</span> <span class="special">(</span><span class="identifier">lhs</span><span class="special">-></span><span class="identifier">seq_</span> <span class="special">></span> <span class="identifier">rhs</span><span class="special">-></span><span class="identifier">seq_</span><span class="special">)?</span> <span class="keyword">true</span><span class="special">:</span><span class="keyword">false</span><span class="special">;</span>
+        <span class="special">}</span>
+    <span class="special">};</span>
+<span class="special">};</span>
+
+<span class="keyword">typedef</span> <span class="identifier">timestamped</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">stringstream</span><span class="special">></span> <span class="identifier">element_type</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">priority_queue</span><span class="special"><</span><span class="identifier">queue_type</span><span class="special">*,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">deque</span><span class="special"><</span><span class="identifier">element_type</span><span class="special">*>,</span> <span class="identifier">element_type</span><span class="special">::</span><span class="identifier">ptr_comparator_gt</span><span class="special">></span> <span class="identifier">priority_queue_type</span><span class="special">;</span>
+</pre>
+<p>
+          In addition to the timestamp <code class="computeroutput"><span class="identifier">date_</span></code>
+          we need a sequence number to order the stringstreams pushed without enough
+          time granularity, e.g. on the same microsecond.
+        </p>
+<p>
+          To finish the field declaration there is the concentrator thread implemented
+          by the loop function.
+        </p>
+<pre class="programlisting"><span class="special">,</span> <span class="identifier">thread_</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="identifier">loop</span><span class="special">,</span> <span class="keyword">this</span><span class="special">))</span>
+</pre>
+<p>
+          Comming back to the sink implementation,
+        </p>
+<pre class="programlisting"><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">::</span><span class="identifier">impl</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">)</span>
+<span class="special">:</span> <span class="identifier">os_</span><span class="special">(</span><span class="identifier">os</span><span class="special">)</span>
+<span class="special">,</span> <span class="identifier">tsss_</span><span class="special">(</span><span class="identifier">terminate</span><span class="special">)</span>
+<span class="special">,</span> <span class="identifier">thread_</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="identifier">loop</span><span class="special">,</span> <span class="keyword">this</span><span class="special">))</span>
+<span class="special">{}</span>
+</pre>
+<p>
+          The terminate cleanup function is used to ensure that the queue is empty
+          before the thread finishes. To avoid optimizations a non const call inc
+          is done while waiting the queue empties.
+        </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">::</span><span class="identifier">terminate</span><span class="special">(</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">async_ostream_thread_ctx</span><span class="special">></span> <span class="identifier">that</span><span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">while</span> <span class="special">(!</span><span class="identifier">that</span><span class="special">-></span><span class="identifier">empty</span><span class="special">())</span> <span class="special">{</span>
+        <span class="identifier">that</span><span class="special">-></span><span class="identifier">inc</span><span class="special">();</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+          The central sink function is write. Here instead to lock a mutex the function
+          forwards to the thread specific shared pointer. We will see below how
+          <code class="computeroutput"><span class="identifier">async_ostream_thread_ctx</span></code>
+          handles this call.
+        </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">tsss_</span><span class="special">-></span><span class="identifier">write</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">n</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          It is time to analyze the thread specific context before seeing how the
+          concentrator is implemented.
+        </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">async_ostream_thread_ctx</span> <span class="special">{</span>
+    <span class="identifier">async_ostream_thread_ctx</span><span class="special">();</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">);</span>
+    <span class="keyword">void</span> <span class="identifier">flush</span><span class="special">();</span>
+    <span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">get</span><span class="special">();</span>
+    <span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">{</span><span class="keyword">return</span> <span class="identifier">queue_</span><span class="special">.</span><span class="identifier">empty</span><span class="special">();}</span>
+    <span class="keyword">void</span> <span class="identifier">inc</span><span class="special">()</span> <span class="special">{++</span><span class="identifier">inc_</span><span class="special">;}</span>
+<span class="keyword">private</span><span class="special">:</span>
+    <span class="keyword">unsigned</span> <span class="identifier">seq_</span><span class="special">;</span>
+    <span class="identifier">element_type</span> <span class="special">*</span><span class="identifier">current_</span><span class="special">;</span>
+    <span class="identifier">queue_type</span> <span class="identifier">queue_</span><span class="special">;</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span> <span class="identifier">mutex_</span><span class="special">;</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">stringstream</span><span class="special">&</span> <span class="identifier">buffer</span><span class="special">()</span> <span class="special">{</span><span class="keyword">return</span> <span class="identifier">current_</span><span class="special">-></span><span class="identifier">value_</span><span class="special">;}</span>
+<span class="special">};</span>
+</pre>
+<p>
+          Each thread has a pointer to the current timestamped stringstream wich
+          is used for the current output flow, i.e. by the write function.
+        </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
+    <span class="identifier">buffer</span><span class="special">().</span><span class="identifier">write</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">n</span><span class="special">);</span>
+    <span class="keyword">return</span> <span class="identifier">n</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+          Once the user does a flush, the current element is pushed on the queue.
+          The <code class="computeroutput"><span class="identifier">sec_</span></code> integer is used
+          as monotonic sequence in conjuntion with the timestamp.
+        </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">flush</span><span class="special">()</span> <span class="special">{</span>
+    <span class="identifier">current_</span><span class="special">-></span><span class="identifier">reset_date</span><span class="special">(</span><span class="identifier">seq_</span><span class="special">);</span>
+    <span class="special">++</span><span class="identifier">seq_</span><span class="special">;</span>
+    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">size</span><span class="special">()></span><span class="number">2</span><span class="special">)</span> <span class="special">{</span>
+        <span class="identifier">queue_</span><span class="special">.</span><span class="identifier">push</span><span class="special">(</span><span class="identifier">current_</span><span class="special">);</span>
+    <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">></span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">mutex_</span><span class="special">);</span>
+        <span class="identifier">queue_</span><span class="special">.</span><span class="identifier">push</span><span class="special">(</span><span class="identifier">current_</span><span class="special">);</span>
+    <span class="special">}</span>
+    <span class="identifier">current_</span> <span class="special">=</span> <span class="keyword">new</span> <span class="identifier">element_type</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+<p>
+          As stated in the introduction, we don't need to lock the mutex if the number
+          of elements in the queue is enough.
+        </p>
+<p>
+          These queue elements will be read by the concentrator using the get function.
+        </p>
+<pre class="programlisting"><span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">get</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">size</span><span class="special">()></span><span class="number">1</span><span class="special">)</span> <span class="special">{</span>
+        <span class="keyword">return</span> <span class="identifier">get_i</span><span class="special">();</span>
+    <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">></span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">mutex_</span><span class="special">);</span>
+        <span class="keyword">return</span> <span class="identifier">get_i</span><span class="special">();</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+
+<span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">get_i</span><span class="special">()</span> <span class="special">{</span>
+    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">empty</span><span class="special">())</span> <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+    <span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">e</span><span class="special">=</span> <span class="identifier">queue_</span><span class="special">.</span><span class="identifier">front</span><span class="special">();</span>
+    <span class="identifier">queue_</span><span class="special">.</span><span class="identifier">pop</span><span class="special">();</span>
+    <span class="keyword">return</span>  <span class="identifier">e</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+          The concentrator loop looks like:
+        </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">async_ostream_sink_impl</span><span class="special">::</span><span class="identifier">loop</span><span class="special">(</span><span class="identifier">async_ostream_sink</span><span class="special">::</span><span class="identifier">impl</span><span class="special">*</span> <span class="identifier">that</span><span class="special">)</span> <span class="special">{</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os_</span> <span class="special">=</span> <span class="identifier">that</span><span class="special">-></span><span class="identifier">os_</span><span class="special">;</span>
+    <span class="keyword">for</span><span class="special">(;;)</span> <span class="special">{</span>
+        <span class="comment">// sleeps a little bit
+</span>        <span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">sleep</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">milliseconds</span><span class="special">(</span><span class="number">1</span><span class="special">));</span>
+        <span class="special">{</span> <span class="comment">// scope needed don't remove
+</span>            <span class="comment">// lock the map access
+</span>            <span class="identifier">tsss_type</span><span class="special">::</span><span class="identifier">lock_type</span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">that</span><span class="special">-></span><span class="identifier">tsss_</span><span class="special">.</span><span class="identifier">get_mutex</span><span class="special">());</span>
+            <span class="keyword">const</span> <span class="identifier">tsss_type</span><span class="special">::</span><span class="identifier">map_type</span><span class="special">&</span> <span class="identifier">tmap</span><span class="special">(</span><span class="identifier">that</span><span class="special">-></span><span class="identifier">tsss_</span><span class="special">.</span><span class="identifier">get_map</span><span class="special">(</span><span class="identifier">lock</span><span class="special">));</span>
+            <span class="keyword">for</span> <span class="special">(</span><span class="identifier">tsss_type</span><span class="special">::</span><span class="identifier">map_type</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">it</span> <span class="special">=</span> <span class="identifier">tmap</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span> <span class="identifier">it</span> <span class="special">!=</span> <span class="identifier">tmap</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span> <span class="special">++</span><span class="identifier">it</span><span class="special">)</span> <span class="special">{</span>
+                <span class="comment">// takes the first element of each thread queue (if it exists) and push it on the ordered queue.
+</span>                <span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">e</span><span class="special">=</span> <span class="identifier">it</span><span class="special">-></span><span class="identifier">second</span><span class="special">-></span><span class="identifier">get</span><span class="special">();</span>
+                <span class="keyword">if</span> <span class="special">(</span><span class="identifier">e</span> <span class="special">!=</span> <span class="number">0</span><span class="special">)</span> <span class="identifier">that</span><span class="special">-></span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">push</span><span class="special">(</span><span class="identifier">e</span><span class="special">);</span>
+            <span class="special">}</span>
+        <span class="special">}</span>
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">that</span><span class="special">-></span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">empty</span><span class="special">())</span> <span class="special">{</span> <span class="comment">//when the queue is empty sleeps a little more
+</span>            <span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">sleep</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">milliseconds</span><span class="special">(</span><span class="number">10</span><span class="special">));</span>
+        <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+            <span class="comment">// takes the fist element of the ordered queue, write them on the output stream and delete it.
+</span>            <span class="identifier">element_type</span><span class="special">*</span> <span class="identifier">e</span> <span class="special">=</span> <span class="identifier">that</span><span class="special">-></span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">top</span><span class="special">();</span>
+            <span class="identifier">that</span><span class="special">-></span><span class="identifier">queue_</span><span class="special">.</span><span class="identifier">pop</span><span class="special">();</span>
+            <span class="identifier">os_</span> <span class="special"><<</span> <span class="string">"["</span><span class="special"><<</span> <span class="identifier">e</span><span class="special">-></span><span class="identifier">date_</span> <span class="special"><<</span><span class="string">"-"</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">-></span><span class="identifier">seq_</span> <span class="special"><<</span> <span class="string">"] "</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">-></span><span class="identifier">value_</span><span class="special">.</span><span class="identifier">str</span><span class="special">();</span>
+            <span class="keyword">delete</span> <span class="identifier">e</span><span class="special">;</span>
+        <span class="special">}</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+</div>
+<p>
+        /
+      </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.users_guide.bibliography"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.bibliography" title="References">References</a>
+</h3></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">Boost.Thread (A. Williams)</span></dt>
+<dd></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="toward_boost_interthreads.users_guide.glosary"></a><a class="link" href="users_guide.html#toward_boost_interthreads.users_guide.glosary" title="Glossary">Glossary</a>
+</h3></div></div></div>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term">alive (thread)</span></dt>
+<dd><p>
+              a thread is considered alive when not dead.
+            </p></dd>
+<dt><span class="term">cleanup decoration</span></dt>
+<dd><p>
+              function called at thread exit.
+            </p></dd>
+<dt><span class="term">dead (thread)</span></dt>
+<dd><p>
+              a thread is considered dead when has not done enough keep alive check
+              points for a given duration.
+            </p></dd>
+<dt><span class="term">decoration</span></dt>
+<dd><p>
+              Couple of setup/cleanup thread decorating functions.
+            </p></dd>
+<dt><span class="term">decorator</span></dt>
+<dd><p>
+              Functor wrapper decorating a thread with all the setups and cleanups
+              decorations.
+            </p></dd>
+<dt><span class="term">deleter TSSS</span></dt>
+<dd><p>
+              specific function used to delete the TSSS.
+            </p></dd>
+<dt><span class="term">KA</span></dt>
+<dd><p>
+              Keep Alive.
+            </p></dd>
+<dt><span class="term">setup decoration</span></dt>
+<dd><p>
+              function called before the thread starts.
+            </p></dd>
+<dt><span class="term">TSS</span></dt>
+<dd><p>
+              Thread Specific Storage.
+            </p></dd>
+<dt><span class="term">TSSS</span></dt>
+<dd><p>
+              Thread Specific Shared Storage.
+            </p></dd>
+</dl>
+</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>
+<td align="right"><div class="copyright-footer">Copyright © 2008 -2009,2011 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>
@@ -70,7 +1765,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="overview/motivation.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="users_guide/getting_started.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="overview.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/bibliography.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/bibliography.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/bibliography.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,15 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>
-      References</title>
+<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.InterThreads">
-<link rel="up" href="../users_guide.html" title=" Users'Guide">
-<link rel="prev" href="tutorial.html" title=" Tutorial">
-<link rel="next" href="glosary.html" title=" Glossary">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<link rel="up" href="../users_guide.html" title="Users'Guide">
+<link rel="prev" href="tutorial.html" title="Tutorial">
+<link rel="next" href="glosary.html" title="Glossary">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -24,19 +22,15 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tutorial.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="glosary.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.users_guide.bibliography"></a><a href="bibliography.html" title="
-      References">
-      References</a>
+<a name="toward_boost_interthreads.users_guide.bibliography"></a><a class="link" href="bibliography.html" title="References">References</a>
 </h3></div></div></div>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
-<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">Boost.Thread (A. Williams)</span></dt>
+<dd></dd>
 </dl>
 </div>
 </div>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/getting_started.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/getting_started.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/getting_started.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,15 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>
-      Getting Started</title>
+<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.InterThreads">
-<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">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<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>
@@ -24,15 +22,14 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../users_guide.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.users_guide.getting_started"></a><a href="getting_started.html" title="
-      Getting Started">
-      Getting Started</a>
+<a name="toward_boost_interthreads.users_guide.getting_started"></a><a class="link" 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_interthreads.users_guide.getting_started.install">
-        Installing InterThreads</a></span></dt>
+<dt><span class="section"><a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install">Installing
+        InterThreads</a></span></dt>
 <dt><span class="section"><a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.hello_world__decorator">Hello
         World! decorator</a></span></dt>
 <dt><span class="section"><a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.monotonic_thread_id">Monotonic
@@ -40,17 +37,16 @@
 <dt><span class="section"><a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.basic_keep_alive">Basic
         keep alive</a></span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.users_guide.getting_started.install"></a><a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install" title="
-        Installing InterThreads">
-        Installing InterThreads</a>
+<a name="toward_boost_interthreads.users_guide.getting_started.install"></a><a class="link" href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install" title="Installing InterThreads">Installing
+        InterThreads</a>
 </h4></div></div></div>
-<a name="toward_boost_interthreads.users_guide.getting_started.install.getting_boost_interthreads"></a><h5>
-<a name="id4943219"></a>
-          <a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.getting_boost_interthreads">Getting
+<a name="toward_boost_interthreads.users_guide.getting_started.install.getting_boost_interthreads"></a><h6>
+<a name="id3194614"></a>
+          <a class="link" href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.getting_boost_interthreads">Getting
           Boost.InterThreads</a>
-        </h5>
+        </h6>
 <p>
           You can get the last stable release of <span class="bold"><strong>Boost.InterThreads</strong></span>
           by downloading <code class="literal">interthreads.zip</code> from the <a href="http://www.boost-consulting.com/vault/index.php?directory=Concurrent%20Programming" target="_top">Boost
@@ -60,24 +56,23 @@
           You can also access the latest (unstable?) state from the <a href="https://svn.boost.org/svn/boost/sandbox/interthreads" target="_top">Boost
           Sandbox</a>.
         </p>
-<a name="toward_boost_interthreads.users_guide.getting_started.install.building_boost_interthreads"></a><h5>
-<a name="id4943275"></a>
-          <a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.building_boost_interthreads">Building
+<a name="toward_boost_interthreads.users_guide.getting_started.install.building_boost_interthreads"></a><h6>
+<a name="id3194668"></a>
+          <a class="link" href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.building_boost_interthreads">Building
           Boost.InterThreads</a>
-        </h5>
+        </h6>
 <p>
           <span class="bold"><strong>Boost.InterThreads</strong></span> is not a header only
           library. You need to compile it before use.
         </p>
-<pre class="programlisting">
-<span class="identifier">cd</span> <span class="identifier">libs</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">build</span>
+<pre class="programlisting"><span class="identifier">cd</span> <span class="identifier">libs</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">build</span>
 <span class="identifier">bjam</span>
 </pre>
-<a name="toward_boost_interthreads.users_guide.getting_started.install.build_requirements"></a><h5>
-<a name="id4943349"></a>
-          <a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.build_requirements">Build
+<a name="toward_boost_interthreads.users_guide.getting_started.install.build_requirements"></a><h6>
+<a name="id3194738"></a>
+          <a class="link" href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.build_requirements">Build
           Requirements</a>
-        </h5>
+        </h6>
 <p>
           <span class="bold"><strong>Boost.InterThreads</strong></span> depends on Boost. You
           must use either Boost version 1.38.x or the version in SVN trunk. In particular,
@@ -88,91 +83,91 @@
 <dl>
 <dt><span class="term">Boost.Array</span></dt>
 <dd><p>
-              for array, ...
-            </p></dd>
+                for array, ...
+              </p></dd>
 <dt><span class="term">Boost.Bind</span></dt>
 <dd><p>
-              for bind, ...
-            </p></dd>
+                for bind, ...
+              </p></dd>
 <dt><span class="term">Boost.Config</span></dt>
 <dd><p>
-              for ??? and abi_prefic_sufix, ...
-            </p></dd>
+                for ??? and abi_prefic_sufix, ...
+              </p></dd>
 <dt><span class="term">Boost.Function</span></dt>
 <dd><p>
-              for function, ...
-            </p></dd>
+                for function, ...
+              </p></dd>
 <dt><span class="term">Boost.Fusion</span></dt>
 <dd><p>
-              for tuples, and sequence algorithms ...
-            </p></dd>
+                for tuples, and sequence algorithms ...
+              </p></dd>
 <dt><span class="term">Boost.MPL</span></dt>
 <dd><p>
-              for transform, ...
-            </p></dd>
+                for transform, ...
+              </p></dd>
 <dt><span class="term">Boost.Preprocesor</span></dt>
 <dd><p>
-              to simulate variadic templates , ...
-            </p></dd>
+                to simulate variadic templates , ...
+              </p></dd>
 <dt><span class="term">Boost.SmartPtr</span></dt>
 <dd><p>
-              for shared_ptr, ...
-            </p></dd>
+                for shared_ptr, ...
+              </p></dd>
 <dt><span class="term">Boost.Threads</span></dt>
 <dd><p>
-              for thread, thread_specific_ptr, call_once, mutex, condition_variable,
-              ...
-            </p></dd>
+                for thread, thread_specific_ptr, call_once, mutex, condition_variable,
+                ...
+              </p></dd>
 <dt><span class="term">Boost.TypeOf</span></dt>
 <dd><p>
-              to register the ACT types.
-            </p></dd>
+                to register the ACT types.
+              </p></dd>
 <dt><span class="term">Boost.TypeTrais</span></dt>
 <dd><p>
-              for is_void, remove_references, ...
-            </p></dd>
+                for is_void, remove_references, ...
+              </p></dd>
 <dt><span class="term">Boost.Utility</span></dt>
 <dd><p>
-              for result_of, enable_if...
-            </p></dd>
+                for result_of, enable_if...
+              </p></dd>
 </dl>
 </div>
-<a name="toward_boost_interthreads.users_guide.getting_started.install.exceptions_safety"></a><h5>
-<a name="id4943631"></a>
-          <a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.exceptions_safety">Exceptions
+<a name="toward_boost_interthreads.users_guide.getting_started.install.exceptions_safety"></a><h6>
+<a name="id3195028"></a>
+          <a class="link" href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.exceptions_safety">Exceptions
           safety</a>
-        </h5>
+        </h6>
 <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_interthreads.users_guide.getting_started.install.thread_safety"></a><h5>
-<a name="id4943659"></a>
-          <a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.thread_safety">Thread
+<a name="toward_boost_interthreads.users_guide.getting_started.install.thread_safety"></a><h6>
+<a name="id3195055"></a>
+          <a class="link" href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.thread_safety">Thread
           safety</a>
-        </h5>
+        </h6>
 <p>
           All functions in the library are thread-unsafe except when noted explicitly.
         </p>
-<a name="toward_boost_interthreads.users_guide.getting_started.install.tested_compilers"></a><h5>
-<a name="id4943686"></a>
-          <a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.tested_compilers">Tested
+<a name="toward_boost_interthreads.users_guide.getting_started.install.tested_compilers"></a><h6>
+<a name="id3195081"></a>
+          <a class="link" href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.install.tested_compilers">Tested
           compilers</a>
-        </h5>
+        </h6>
 <p>
           Currently, <span class="bold"><strong>Boost.InterThreads</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>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+              GCC 3.4.4 Cygwin
+            </li>
+<li class="listitem">
+              GCC 3.4.6 Linux
+            </li>
+<li class="listitem">
+              GCC 4.1.2 Linux
+            </li>
 </ul></div>
 <div class="note"><table border="0" summary="Note">
 <tr>
@@ -185,18 +180,16 @@
           </p></td></tr>
 </table></div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.users_guide.getting_started.hello_world__decorator"></a><a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.hello_world__decorator" title="Hello
-        World! decorator">Hello
+<a name="toward_boost_interthreads.users_guide.getting_started.hello_world__decorator"></a><a class="link" href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.hello_world__decorator" title="Hello World! decorator">Hello
         World! decorator</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">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</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">thread</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>
 
@@ -238,10 +231,9 @@
 Bye, Bye!
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.users_guide.getting_started.monotonic_thread_id"></a><a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.monotonic_thread_id" title="Monotonic
-        Thread Id">Monotonic
+<a name="toward_boost_interthreads.users_guide.getting_started.monotonic_thread_id"></a><a class="link" href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.monotonic_thread_id" title="Monotonic Thread Id">Monotonic
         Thread Id</a>
 </h4></div></div></div>
 <p>
@@ -258,8 +250,7 @@
           thread decorator. This setup function resets the specific pointer with
           the value of the monotonic counter which will be self increased.
         </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">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</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">interthreads</span><span class="special">/</span><span class="identifier">thread_specific_shared_ptr</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">thread</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>
@@ -302,8 +293,7 @@
           to a monotonic thread id mono_thread_id::id() and this id is accesible
           to other threads providing the boost::thread::id.
         </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">my_thread</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><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">"mono_thread_id="</span> <span class="special"><<</span> <span class="identifier">mono_thread_id</span><span class="special">::</span><span class="identifier">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="identifier">sleep</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
 <span class="special">}</span>
@@ -335,17 +325,15 @@
 
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.users_guide.getting_started.basic_keep_alive"></a><a href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.basic_keep_alive" title="Basic
-        keep alive">Basic
+<a name="toward_boost_interthreads.users_guide.getting_started.basic_keep_alive"></a><a class="link" href="getting_started.html#toward_boost_interthreads.users_guide.getting_started.basic_keep_alive" title="Basic keep alive">Basic
         keep alive</a>
 </h4></div></div></div>
 <p>
           This example shows the keep_alive basics.
         </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">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interthreads</span><span class="special">/</span><span class="identifier">thread_decorator</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">interthreads</span><span class="special">/</span><span class="identifier">keep_alive</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">thread</span><span class="special">/</span><span class="identifier">thread</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>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/glosary.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/glosary.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/glosary.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,15 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title> Glossary</title>
+<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.InterThreads">
-<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">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<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>
@@ -24,55 +22,55 @@
 <div class="spirit-nav">
 <a accesskey="p" href="bibliography.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.users_guide.glosary"></a> Glossary
+<a name="toward_boost_interthreads.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">alive (thread)</span></dt>
 <dd><p>
-            a thread is considered alive when not dead.
-          </p></dd>
+              a thread is considered alive when not dead.
+            </p></dd>
 <dt><span class="term">cleanup decoration</span></dt>
 <dd><p>
-            function called at thread exit.
-          </p></dd>
+              function called at thread exit.
+            </p></dd>
 <dt><span class="term">dead (thread)</span></dt>
 <dd><p>
-            a thread is considered dead when has not done enough keep alive check
-            points for a given duration.
-          </p></dd>
+              a thread is considered dead when has not done enough keep alive check
+              points for a given duration.
+            </p></dd>
 <dt><span class="term">decoration</span></dt>
 <dd><p>
-            Couple of setup/cleanup thread decorating functions.
-          </p></dd>
+              Couple of setup/cleanup thread decorating functions.
+            </p></dd>
 <dt><span class="term">decorator</span></dt>
 <dd><p>
-            Functor wrapper decorating a thread with all the setups and cleanups
-            decorations.
-          </p></dd>
+              Functor wrapper decorating a thread with all the setups and cleanups
+              decorations.
+            </p></dd>
 <dt><span class="term">deleter TSSS</span></dt>
 <dd><p>
-            specific function used to delete the TSSS.
-          </p></dd>
+              specific function used to delete the TSSS.
+            </p></dd>
 <dt><span class="term">KA</span></dt>
 <dd><p>
-            Keep Alive.
-          </p></dd>
+              Keep Alive.
+            </p></dd>
 <dt><span class="term">setup decoration</span></dt>
 <dd><p>
-            function called before the thread starts.
-          </p></dd>
+              function called before the thread starts.
+            </p></dd>
 <dt><span class="term">TSS</span></dt>
 <dd><p>
-            Thread Specific Storage.
-          </p></dd>
+              Thread Specific Storage.
+            </p></dd>
 <dt><span class="term">TSSS</span></dt>
 <dd><p>
-            Thread Specific Shared Storage.
-          </p></dd>
+              Thread Specific Shared Storage.
+            </p></dd>
 </dl>
 </div>
 </div>
Modified: sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/tutorial.html
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/tutorial.html	(original)
+++ sandbox/interthreads/libs/interthreads/doc/html/toward_boost_interthreads/users_guide/tutorial.html	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,16 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title> Tutorial</title>
+<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.InterThreads">
-<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">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Toward Boost.InterThreads">
+<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>
@@ -25,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="getting_started.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../users_guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bibliography.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial"></a> Tutorial
+<a name="toward_boost_interthreads.users_guide.tutorial"></a><a class="link" href="tutorial.html" title="Tutorial">Tutorial</a>
 </h3></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator">Thread
@@ -37,8 +34,8 @@
           a decoration</a></span></dt>
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.creating_threads_with_decorators">Creating
           threads with decorators</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call">
-          Calling explictly the decoration on a thread</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call">Calling
+          explictly the decoration on a thread</a></span></dt>
 </dl></dd>
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer">Thread
         Specific Shared Pointer</a></span></dt>
@@ -64,14 +61,14 @@
 <dt><span class="section">Interface</span></dt>
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_mechanism_initialization">Keep
           alive mechanism initialization</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads">
-          Which threads can be controlled?</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling">
-          Enabling the keep alive mechanism</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling">
-          Disabling the keep alive mechanism</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent">
-          Configuring the dead persistency</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads">Which
+          threads can be controlled?</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling">Enabling
+          the keep alive mechanism</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling">Disabling
+          the keep alive mechanism</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent">Configuring
+          the dead persistency</a></span></dt>
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from_the_current_thread">Access
           from the current thread</a></span></dt>
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from__the_controller_thread">Access
@@ -80,20 +77,18 @@
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple">Thread
         Tuple</a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching">
-          Launching thread tuple</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions">
-          Exceptions in thread functions</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining">
-          Joining and detaching</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_interruption">
-          Interruption</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching">Launching
+          thread tuple</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions">Exceptions
+          in thread functions</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining">Joining
+          and detaching</a></span></dt>
+<dt><span class="section">Interruption</span></dt>
 </dl></dd>
 </dl></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator" title="Thread
-        Decorator">Thread
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator" title="Thread Decorator">Thread
         Decorator</a>
 </h4></div></div></div>
 <div class="toc"><dl>
@@ -101,13 +96,12 @@
           a decoration</a></span></dt>
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.creating_threads_with_decorators">Creating
           threads with decorators</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call">
-          Calling explictly the decoration on a thread</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call">Calling
+          explictly the decoration on a thread</a></span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator.declaring_a_decoration"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.declaring_a_decoration" title="Declaring
-          a decoration">Declaring
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator.declaring_a_decoration"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.declaring_a_decoration" title="Declaring a decoration">Declaring
           a decoration</a>
 </h5></div></div></div>
 <p>
@@ -115,8 +109,7 @@
             are usualy static and initialized with a <code class="computeroutput"><span class="identifier">Callable</span></code>
             object:
           </p>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">::</span><span class="identifier">thread_decoration</span> <span class="identifier">d</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">interthreads</span><span class="special">::</span><span class="identifier">thread_decoration</span> <span class="identifier">d</span><span class="special">;</span>
 <span class="keyword">void</span> <span class="identifier">setup</span><span class="special">();</span>
 
 <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_decoration</span> <span class="identifier">d</span><span class="special">(</span><span class="identifier">setup</span><span class="special">);</span>
@@ -128,51 +121,45 @@
             explained in more detail in the next sections.
           </p>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator.creating_threads_with_decorators"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.creating_threads_with_decorators" title="Creating
-          threads with decorators">Creating
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator.creating_threads_with_decorators"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.creating_threads_with_decorators" title="Creating threads with decorators">Creating
           threads with decorators</a>
 </h5></div></div></div>
 <p>
             When we want the decorations to decorate one thread of execution we can
             create the thread using the decorator wrapper.
           </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">(</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">fct</span><span class="special">));</span>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">(</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_decorator</span><span class="special">(</span><span class="identifier">fct</span><span class="special">));</span>
 </pre>
 <p>
             This behavion is obtained also using one of the <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code>
             decorators of the Boost.Async library, as
           </p>
-<pre class="programlisting">
-<span class="identifier">bith</span><span class="special">::</span><span class="identifier">basic_threader_decorator</span> <span class="identifier">ae</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">basic_threader_decorator</span> <span class="identifier">ae</span><span class="special">;</span>
 <span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">th</span><span class="special">,</span> <span class="identifier">bith</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">fct</span><span class="special">));</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call" title="
-          Calling explictly the decoration on a thread">
-          Calling explictly the decoration on a thread</a>
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_decorator.decorator_explicit_call" title="Calling explictly the decoration on a thread">Calling
+          explictly the decoration on a thread</a>
 </h5></div></div></div>
 <p>
             For threads that are not created using the boost::thread class, as it
             is the case of the main thread, we need to call explicitly the function
             <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">decorate</span></code> at the begining of the thread.
           </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span>
     <span class="identifier">bith</span><span class="special">::</span><span class="identifier">decorate</span><span class="special">();</span>
     <span class="comment">// ...
 </span><span class="special">}</span>
 </pre>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer" title="Thread
-        Specific Shared Pointer">Thread
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer" title="Thread Specific Shared Pointer">Thread
         Specific Shared Pointer</a>
 </h4></div></div></div>
 <div class="toc"><dl>
@@ -191,24 +178,21 @@
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.cleanup_at_thread_exit">Cleanup
           at thread exit</a></span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.key_initialization"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.key_initialization" title="Key
-          initialization">Key
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.key_initialization"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.key_initialization" title="Key initialization">Key
           initialization</a>
 </h5></div></div></div>
 <p>
             As the curent implementation uses the address of the thread_specific_shared_ptr<>
             object, there is no need to do anything to get the key.
           </p>
-<pre class="programlisting">
-<span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.context_initialization"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.context_initialization" title="Context
-          initialization">Context
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.context_initialization"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.context_initialization" title="Context initialization">Context
           initialization</a>
 </h5></div></div></div>
 <p>
@@ -228,24 +212,22 @@
 <p>
             Initialization can be done
           </p>
-<div class="itemizedlist"><ul type="disc"><li>
-              explicitly on the curret thread. Basically it works like a thread local
-              storage from inside the thread.
-            </li></ul></div>
-<pre class="programlisting">
-<span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                explicitly on the curret thread. Basically it works like a thread
+                local storage from inside the thread.
+              </li></ul></div>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
 <span class="keyword">void</span> <span class="identifier">func</span><span class="special">()</span> <span class="special">{</span> <span class="comment">// current thread
 </span>    <span class="comment">// ...
 </span>    <span class="identifier">ptr</span><span class="special">.</span><span class="identifier">reset</span><span class="special">(</span><span class="identifier">p</span><span class="special">);</span>
     <span class="comment">// ...
 </span><span class="special">}</span>
 </pre>
-<div class="itemizedlist"><ul type="disc"><li>
-              When we associate a thread decoration to the thread_specific_shared_ptr<>
-              we initialize implicitly every thread created with a thread_decorator.
-            </li></ul></div>
-<pre class="programlisting">
-<span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                When we associate a thread decoration to the thread_specific_shared_ptr<>
+                we initialize implicitly every thread created with a thread_decorator.
+              </li></ul></div>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">ptr</span><span class="special">;</span>
 <span class="keyword">void</span> <span class="identifier">myclass_setup</span><span class="special">()</span> <span class="special">{</span>
     <span class="identifier">ptr</span><span class="special">.</span><span class="identifier">reset</span><span class="special">(</span><span class="keyword">new</span> <span class="identifier">myclass</span><span class="special">(</span><span class="identifier">any</span> <span class="identifier">specific</span> <span class="identifier">parameters</span><span class="special">));</span>
 <span class="special">}</span>
@@ -258,10 +240,9 @@
 <span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">=</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_decorated_thread</span><span class="special">(</span><span class="identifier">func</span><span class="special">);</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_on_the_current_thread"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_on_the_current_thread" title="Obtain
-          the pointer to the thread-specific object on the current thread">Obtain
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_on_the_current_thread"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_on_the_current_thread" title="Obtain the pointer to the thread-specific object on the current thread">Obtain
           the pointer to the thread-specific object on the current thread</a>
 </h5></div></div></div>
 <p>
@@ -272,8 +253,7 @@
             and <code class="computeroutput"><span class="special">-></span></code> pointer deference
             operators.
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">func</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">func</span><span class="special">()</span> <span class="special">{</span>
 <span class="special">{</span> <span class="comment">// current thread
 </span>    <span class="comment">// ...
 </span>    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">ptr</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">ptr</span><span class="special">.</span><span class="identifier">reset</span><span class="special">(</span><span class="keyword">new</span> <span class="identifier">myclass</span><span class="special">);</span>
@@ -282,18 +262,16 @@
 <span class="special">}</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_of_another_thread"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_of_another_thread" title="Obtain
-          the pointer to the thread-specific object of another thread">Obtain
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_of_another_thread"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.obtain_the_pointer_to_the_thread_specific_object_of_another_thread" title="Obtain the pointer to the thread-specific object of another thread">Obtain
           the pointer to the thread-specific object of another thread</a>
 </h5></div></div></div>
 <p>
             Besides, other threads can get access to the data provided a thread::id
             by:
           </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">=</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_decorated_thread</span><span class="special">(</span><span class="identifier">func</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">=</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_decorated_thread</span><span class="special">(</span><span class="identifier">func</span><span class="special">);</span>
 
 <span class="identifier">ptr</span><span class="special">[</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()]-></span><span class="identifier">foo</span><span class="special">();</span>
 </pre>
@@ -307,16 +285,14 @@
             specific context could be not yet done. One way to manage with this error
             is to get the shared pointer and check if it contains something or not.
           </p>
-<pre class="programlisting">
-<span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">shp</span> <span class="special">=</span> <span class="identifier">ptr</span><span class="special">[</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()]-></span><span class="identifier">foo</span><span class="special">();</span>
+<pre class="programlisting"><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">shp</span> <span class="special">=</span> <span class="identifier">ptr</span><span class="special">[</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()]-></span><span class="identifier">foo</span><span class="special">();</span>
 <span class="keyword">if</span> <span class="special">(</span><span class="identifier">shp</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special">!=</span> <span class="number">0</span><span class="special">)</span> <span class="identifier">shp</span><span class="special">-></span><span class="identifier">foo</span><span class="special">();</span>
 <span class="keyword">else</span> <span class="special">...</span>
 </pre>
 <p>
             When we need this we can pool:
           </p>
-<pre class="programlisting">
-<span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">shp</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">shp</span><span class="special">;</span>
 <span class="keyword">do</span> <span class="special">{</span>
     <span class="identifier">shp</span> <span class="special">=</span> <span class="identifier">ptr</span><span class="special">[</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()]-></span><span class="identifier">foo</span><span class="special">();</span>
 <span class="special">}</span> <span class="keyword">while</span><span class="special">(</span><span class="identifier">shp</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="special">==</span> <span class="number">0</span><span class="special">);</span>
@@ -327,16 +303,13 @@
             The wait_and_get() function allows a thread to synchronize with the setting
             from another thread.
           </p>
-<pre class="programlisting">
-<span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">shp</span> <span class="special">=</span> <span class="identifier">ptr</span><span class="special">.</span><span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">());</span>
+<pre class="programlisting"><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">></span> <span class="identifier">shp</span> <span class="special">=</span> <span class="identifier">ptr</span><span class="special">.</span><span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">());</span>
 <span class="identifier">shp</span><span class="special">-></span><span class="identifier">foo</span><span class="special">();</span>
 </pre>
 <p>
-            shared_ptr<myclass> shp = ptr.wait_and_get(th->get_id()); shp->foo();
             or
           </p>
-<pre class="programlisting">
-<span class="identifier">ptr</span><span class="special">.</span><span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()-></span><span class="identifier">foo</span><span class="special">();</span>
+<pre class="programlisting"><span class="identifier">ptr</span><span class="special">.</span><span class="identifier">wait_and_get</span><span class="special">(</span><span class="identifier">th</span><span class="special">-></span><span class="identifier">get_id</span><span class="special">()-></span><span class="identifier">foo</span><span class="special">();</span>
 </pre>
 <p>
             In order to ensure that the decorations have been called, a cleaner and
@@ -344,8 +317,7 @@
             behavior is obtained each time the thread is created with an <code class="computeroutput"><span class="identifier">AsynchronousExecutor</span></code> decorator when
             using the Boost.Async library, as
           </p>
-<pre class="programlisting">
-<span class="identifier">bith</span><span class="special">::</span><span class="identifier">basic_threader_decorator</span> <span class="identifier">ae</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">basic_threader_decorator</span> <span class="identifier">ae</span><span class="special">;</span>
 <span class="identifier">BOOST_AUTO</span><span class="special">(</span><span class="identifier">th</span><span class="special">,</span> <span class="identifier">bith</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">func</span><span class="special">));</span>
 <span class="comment">// here you are sure all the decorations have been called
 </span><span class="comment">// so we can access any thread_specific_shared_ptr of the created thread.
@@ -357,10 +329,9 @@
             might be held by other threads, obtained by <code class="computeroutput"><span class="special">*</span><span class="identifier">pmyclass</span><span class="special">[</span><span class="identifier">th</span><span class="special">]</span></code>.
           </p>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.iterating_through_all_the_thread_specific_context"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.iterating_through_all_the_thread_specific_context" title="Iterating
-          through all the thread specific context">Iterating
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.iterating_through_all_the_thread_specific_context"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.iterating_through_all_the_thread_specific_context" title="Iterating through all the thread specific context">Iterating
           through all the thread specific context</a>
 </h5></div></div></div>
 <p>
@@ -370,18 +341,16 @@
             locking mechanism that 'ensure' that the map access is locked during
             the map query.
           </p>
-<pre class="programlisting">
-<span class="special">{</span>
+<pre class="programlisting"><span class="special">{</span>
     <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">>::</span><span class="identifier">lock_type</span> <span class="identifier">lock</span><span class="special">(</span><span class="identifier">ptr</span><span class="special">.</span><span class="identifier">get_mutex</span><span class="special">());</span>
     <span class="keyword">const</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">myclass</span><span class="special">>::</span><span class="identifier">map_type</span> <span class="identifier">amap</span> <span class="special">=</span> <span class="identifier">ptr</span><span class="special">.</span><span class="identifier">get_map</span><span class="special">(</span><span class="identifier">lock</span><span class="special">);</span>
     <span class="comment">// use the map
 </span><span class="special">}</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.deleting_the_context"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.deleting_the_context" title="Deleting
-          the context">Deleting
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.deleting_the_context"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.deleting_the_context" title="Deleting the context">Deleting
           the context</a>
 </h5></div></div></div>
 <p>
@@ -398,14 +367,12 @@
             deleter routine supplied to the constructor. The deleter function is
             called only when there are no more references to the shared pointer.
           </p>
-<pre class="programlisting">
-<span class="comment">// Add use of deleter !!!
+<pre class="programlisting"><span class="comment">// Add use of deleter !!!
 </span></pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.cleanup_at_thread_exit"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.cleanup_at_thread_exit" title="Cleanup
-          at thread exit">Cleanup
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.cleanup_at_thread_exit"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_specific_shared_pointer.cleanup_at_thread_exit" title="Cleanup at thread exit">Cleanup
           at thread exit</a>
 </h5></div></div></div>
 <p>
@@ -427,29 +394,27 @@
             list. Cleanup finishes when there are no outstanding instances of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code>
             with values.
           </p>
-<pre class="programlisting">
-<span class="comment">// Add use of at thread_exit!!!
+<pre class="programlisting"><span class="comment">// Add use of at thread_exit!!!
 </span></pre>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive" title="Keep
-        alive">Keep
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive" title="Keep alive">Keep
         alive</a>
 </h4></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Interface</span></dt>
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_mechanism_initialization">Keep
           alive mechanism initialization</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads">
-          Which threads can be controlled?</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling">
-          Enabling the keep alive mechanism</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling">
-          Disabling the keep alive mechanism</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent">
-          Configuring the dead persistency</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads">Which
+          threads can be controlled?</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling">Enabling
+          the keep alive mechanism</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling">Disabling
+          the keep alive mechanism</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent">Configuring
+          the dead persistency</a></span></dt>
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from_the_current_thread">Access
           from the current thread</a></span></dt>
 <dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from__the_controller_thread">Access
@@ -477,15 +442,14 @@
           keep alive mechanislm is enabled. At the begining of a thread the keep
           alive mechanism is disabled.
         </p>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.interface"></a>Interface
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.interface"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.interface" title="Interface">Interface</a>
 </h5></div></div></div>
 <p>
             Next follows the keep alive interface.
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<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">interthreads</span> <span class="special">{</span>
     <span class="keyword">namespace</span> <span class="identifier">this_thread</span> 	<span class="special">{</span>
         <span class="keyword">class</span> <span class="identifier">enable_keep_alive</span> <span class="special">{</span>
@@ -513,10 +477,9 @@
 <span class="special">}</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_mechanism_initialization"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_mechanism_initialization" title="Keep
-          alive mechanism initialization">Keep
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_mechanism_initialization"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_mechanism_initialization" title="Keep alive mechanism initialization">Keep
           alive mechanism initialization</a>
 </h5></div></div></div>
 <p>
@@ -524,8 +487,7 @@
             The controler needs to access some thread specific shared context <code class="computeroutput"><span class="identifier">thread_keep_alive_ctx</span></code> to be able to
             control a thread.
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">detail</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">detail</span> <span class="special">{</span>
     <span class="keyword">struct</span> <span class="identifier">thread_keep_alive_ctx</span> <span class="special">{</span>
         <span class="comment">// ...
 </span>        <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">init</span><span class="special">();</span>
@@ -554,8 +516,7 @@
             specific context is done using an internal thread decoration <code class="computeroutput"><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">initializer_</span></code> with <code class="computeroutput"><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">init</span></code>
             as setup function.
           </p>
-<pre class="programlisting">
-<span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">></span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance_</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">></span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance_</span><span class="special">;</span>
 <span class="identifier">thread_decoration</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">initializer_</span><span class="special">(</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">init</span><span class="special">);</span>
 <span class="identifier">boost</span><span class="special">::</span><span class="identifier">once_flag</span> <span class="identifier">keep_alive_mgr</span><span class="special">::</span><span class="identifier">flag</span><span class="special">;</span>
 </pre>
@@ -563,8 +524,7 @@
             This setup function will initialize the <code class="computeroutput"><span class="identifier">keep_alive_mgr</span></code>
             and then set the <code class="computeroutput"><span class="identifier">thread_specific_shared_ptr</span><span class="special"><></span></code> with a new <code class="computeroutput"><span class="identifier">thread_keep_alive_ctx</span></code>.
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">init</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">init</span><span class="special">()</span> <span class="special">{</span>
     <span class="identifier">keep_alive_mgr</span><span class="special">::</span><span class="identifier">initialize</span><span class="special">();</span>
     <span class="identifier">instance_</span><span class="special">.</span><span class="identifier">reset</span><span class="special">(</span><span class="keyword">new</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">());</span>
 <span class="special">}</span>
@@ -576,8 +536,7 @@
             the instance of the <code class="computeroutput"><span class="identifier">keep_alive_mgr</span></code>
             singleton.
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">keep_alive_mgr</span><span class="special">::</span><span class="identifier">initialize</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">keep_alive_mgr</span><span class="special">::</span><span class="identifier">initialize</span><span class="special">()</span> <span class="special">{</span>
     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">call_once</span><span class="special">(</span><span class="identifier">flag_</span><span class="special">,</span> <span class="identifier">init</span><span class="special">);</span>
 <span class="special">}</span>
 <span class="keyword">void</span> <span class="identifier">keep_alive_mgr</span><span class="special">::</span><span class="identifier">init</span><span class="special">()</span> <span class="special">{</span>
@@ -585,11 +544,10 @@
 <span class="special">}</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads" title="
-          Which threads can be controlled?">
-          Which threads can be controlled?</a>
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_threads" title="Which threads can be controlled?">Which
+          threads can be controlled?</a>
 </h5></div></div></div>
 <p>
             As the keep alive mechanism uses a thread decoration, the user needs
@@ -601,8 +559,7 @@
             So we must either call <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">decorate</span></code>
             explicitly on the thread function
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
     <span class="identifier">bith</span><span class="special">::</span><span class="identifier">decorate</span><span class="special">();</span>
     <span class="comment">// ...
 </span><span class="special">}</span>
@@ -611,15 +568,13 @@
             or create the thread with the <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_decorator</span></code>
             wrapper
           </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">(</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_decorator</span><span class="special">(</span><span class="identifier">fct</span><span class="special">));</span>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span> <span class="identifier">th</span><span class="special">(</span><span class="identifier">bith</span><span class="special">::</span><span class="identifier">make_decorator</span><span class="special">(</span><span class="identifier">fct</span><span class="special">));</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling" title="
-          Enabling the keep alive mechanism">
-          Enabling the keep alive mechanism</a>
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_enabling" title="Enabling the keep alive mechanism">Enabling
+          the keep alive mechanism</a>
 </h5></div></div></div>
 <p>
             To be controled by the keep alive manager we need to enable the mechanism
@@ -627,8 +582,7 @@
             to do at least one check point every 2 seconds using the <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">keep_alive_point</span><span class="special">()</span></code>
             function.
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
     <span class="keyword">using</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">;</span>
 
     <span class="comment">// ...
@@ -643,19 +597,17 @@
 <span class="special">}</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling" title="
-          Disabling the keep alive mechanism">
-          Disabling the keep alive mechanism</a>
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_disabling" title="Disabling the keep alive mechanism">Disabling
+          the keep alive mechanism</a>
 </h5></div></div></div>
 <p>
             Some times we need to do an external task that could take an undefined
             time. We can then disable the keep alive mechanisme by using a disabler
             <code class="computeroutput"><span class="identifier">bith</span><span class="special">::</span><span class="identifier">disable_keep_alive</span></code>.
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
     <span class="keyword">using</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">;</span>
 
     <span class="comment">// ...
@@ -682,8 +634,7 @@
             the possibility to manage the keep alive error by interrupting the dead
             thread remains, once the task is finished.
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
     <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">;</span>
     <span class="keyword">using</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">;</span>
 
@@ -706,11 +657,10 @@
 <span class="special">}</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent" title="
-          Configuring the dead persistency">
-          Configuring the dead persistency</a>
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.keep_alive_persistent" title="Configuring the dead persistency">Configuring
+          the dead persistency</a>
 </h5></div></div></div>
 <p>
             The default enabling parameters could be too restrictive in some cases.
@@ -719,8 +669,7 @@
             the thread has not done a number of checkins in a given period. This
             can be useful when one knows the time a given task should take.
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">fct</span><span class="special">()</span> <span class="special">{</span>
     <span class="keyword">using</span> <span class="identifier">bith</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">;</span>
 
     <span class="comment">// ...
@@ -743,10 +692,9 @@
 </span><span class="special">}</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from_the_current_thread"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from_the_current_thread" title="Access
-          from the current thread">Access
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from_the_current_thread"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from_the_current_thread" title="Access from the current thread">Access
           from the current thread</a>
 </h5></div></div></div>
 <p>
@@ -756,8 +704,7 @@
             this thread using the backup function and then they enable/disable the
             KA mechanism. On destruction they restore the backed up context.
           </p>
-<pre class="programlisting">
-<span class="identifier">enable_keep_alive</span><span class="special">::</span><span class="identifier">enable_keep_alive</span><span class="special">(</span>
+<pre class="programlisting"><span class="identifier">enable_keep_alive</span><span class="special">::</span><span class="identifier">enable_keep_alive</span><span class="special">(</span>
         <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">periods</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">checkins</span><span class="special">)</span>
 <span class="special">{</span>
     <span class="identifier">backup_</span><span class="special">=</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">()-></span><span class="identifier">backup</span><span class="special">(</span><span class="identifier">data_</span><span class="special">);</span>
@@ -780,8 +727,7 @@
 <p>
             These functions are quite simple
           </p>
-<pre class="programlisting">
-<span class="identifier">thread_keep_alive_internal</span><span class="special">*</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">backup</span><span class="special">(</span><span class="identifier">thread_keep_alive_internal</span><span class="special">*</span> <span class="identifier">new_data</span><span class="special">)</span> <span class="special">{</span>
+<pre class="programlisting"><span class="identifier">thread_keep_alive_internal</span><span class="special">*</span> <span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">backup</span><span class="special">(</span><span class="identifier">thread_keep_alive_internal</span><span class="special">*</span> <span class="identifier">new_data</span><span class="special">)</span> <span class="special">{</span>
     <span class="identifier">thread_keep_alive_internal</span><span class="special">*</span> <span class="identifier">the_backup</span><span class="special">=</span><span class="identifier">data_</span><span class="special">;</span>
     <span class="identifier">data_</span><span class="special">=</span><span class="identifier">new_data</span>
     <span class="keyword">return</span> <span class="identifier">the_backup</span><span class="special">;</span>
@@ -807,8 +753,7 @@
             relaying the request to the specific context of this thread. This function
             just increases the number of <code class="computeroutput"><span class="identifier">checkins_</span></code>.
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">keep_alive_point</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">keep_alive_point</span><span class="special">()</span> <span class="special">{</span>
     <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">()-></span><span class="identifier">check_point</span><span class="special">();</span>
 <span class="special">}</span>
 
@@ -820,8 +765,7 @@
             The <code class="computeroutput"><span class="identifier">set_on_dead_thread</span><span class="special">()</span></code> does the same. This function just stores
             the on-dead action.
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</span><span class="special">,</span> <span class="identifier">thread</span><span class="special">*</span> <span class="identifier">th</span><span class="special">)</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">on_dead_thread_type</span> <span class="identifier">fct</span><span class="special">,</span> <span class="identifier">thread</span><span class="special">*</span> <span class="identifier">th</span><span class="special">)</span> <span class="special">{</span>
     <span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread_keep_alive_ctx</span><span class="special">::</span><span class="identifier">instance</span><span class="special">()-></span><span class="identifier">set_on_dead_thread</span><span class="special">(</span><span class="identifier">fct</span><span class="special">,</span> <span class="identifier">th</span><span class="special">);</span>
 <span class="special">}</span>
 
@@ -831,10 +775,9 @@
     <span class="special">}</span>
 </pre>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from__the_controller_thread"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from__the_controller_thread" title="Access
-          from the controller thread">Access
+<a name="toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from__the_controller_thread"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.keep_alive.access_from__the_controller_thread" title="Access from the controller thread">Access
           from the controller thread</a>
 </h5></div></div></div>
 <p>
@@ -849,8 +792,7 @@
 <p>
             The constructor just constructs a thread with the loop function.
           </p>
-<pre class="programlisting">
-<span class="identifier">keep_alive_mgr</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">end_</span><span class="special">(</span><span class="keyword">false</span><span class="special">),</span> <span class="identifier">thread_</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="identifier">loop</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">end_</span><span class="special">)))</span>  <span class="special">{}</span>
+<pre class="programlisting"><span class="identifier">keep_alive_mgr</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">end_</span><span class="special">(</span><span class="keyword">false</span><span class="special">),</span> <span class="identifier">thread_</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="identifier">loop</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">end_</span><span class="special">)))</span>  <span class="special">{}</span>
 </pre>
 <p>
             The loop function will iterate, every second, over all the thread_keep_alive_ctx
@@ -858,8 +800,7 @@
             as the map can be modified when threads are created or finished, we need
             to protect the iteration externally with a lock on the protecting mutex.
           </p>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">loop</span><span class="special">(</span><span class="keyword">bool</span><span class="special">&</span> <span class="identifier">end</span><span class="special">)</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">loop</span><span class="special">(</span><span class="keyword">bool</span><span class="special">&</span> <span class="identifier">end</span><span class="special">)</span> <span class="special">{</span>
     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">xtime</span> <span class="identifier">t</span><span class="special">;</span>
     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">xtime_get</span><span class="special">(&</span><span class="identifier">t</span><span class="special">,</span><span class="number">1</span><span class="special">);</span>
     <span class="keyword">while</span><span class="special">(!</span><span class="identifier">end</span><span class="special">)</span> <span class="special">{</span>
@@ -883,8 +824,7 @@
             when the program finishes. So it is up to the destructor to set this
             variable and wait for the thread completion
           </p>
-<pre class="programlisting">
-<span class="special">~</span><span class="identifier">keep_alive_mgr</span><span class="special">()</span> <span class="special">{</span>
+<pre class="programlisting"><span class="special">~</span><span class="identifier">keep_alive_mgr</span><span class="special">()</span> <span class="special">{</span>
     <span class="identifier">end_</span><span class="special">=</span><span class="keyword">true</span><span class="special">;</span>
     <span class="identifier">thread_</span><span class="special">.</span><span class="identifier">join</span><span class="special">();</span>
 <span class="special">}</span>
@@ -895,8 +835,7 @@
             is declared dead it executes the on dead action and resets the check-ins
             and periods.
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">control</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">control</span><span class="special">(</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span> <span class="identifier">id</span><span class="special">)</span> <span class="special">{</span>
     <span class="keyword">if</span> <span class="special">(</span><span class="identifier">data_</span><span class="special">-></span><span class="identifier">enabled_</span><span class="special">)</span> <span class="special">{</span>
         <span class="special">--</span><span class="identifier">data_</span><span class="special">-></span><span class="identifier">periods_</span><span class="special">;</span>
         <span class="keyword">if</span> <span class="special">(</span><span class="identifier">dead</span><span class="special">())</span> <span class="special">{</span>
@@ -909,27 +848,24 @@
 </pre>
 </div>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple" title="Thread
-        Tuple">Thread
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple" title="Thread Tuple">Thread
         Tuple</a>
 </h4></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching">
-          Launching thread tuple</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions">
-          Exceptions in thread functions</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining">
-          Joining and detaching</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_interruption">
-          Interruption</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching">Launching
+          thread tuple</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions">Exceptions
+          in thread functions</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining">Joining
+          and detaching</a></span></dt>
+<dt><span class="section">Interruption</span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching" title="
-          Launching thread tuple">
-          Launching thread tuple</a>
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_launching" title="Launching thread tuple">Launching
+          thread tuple</a>
 </h5></div></div></div>
 <p>
             A new thread tuple is launched by passing a collection of objects of
@@ -940,8 +876,7 @@
             to the function object. In this case, the user of <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> must ensure that the referred-to
             object outlives the newly-created thread of execution.
           </p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">callable</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">callable</span>
 <span class="special">{</span>
     <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()();</span>
 <span class="special">};</span>
@@ -967,8 +902,7 @@
             additional arguments as is the case for threads to the <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code>
             constructor, and you will need to use bind explicitly.
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">find_the_question</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">the_answer</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">find_the_question</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">the_answer</span><span class="special">);</span>
 
 <span class="identifier">bith</span><span class="special">::</span><span class="identifier">thread_tuple</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="identifier">deep_thought_2</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="identifier">find_the_question</span><span class="special">,</span><span class="number">42</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="identifier">find_the_question</span><span class="special">,</span><span class="number">16</span><span class="special">));</span>
 </pre>
@@ -982,11 +916,10 @@
             specified by the Boost.Bind.
           </p>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions" title="
-          Exceptions in thread functions">
-          Exceptions in thread functions</a>
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_exceptions" title="Exceptions in thread functions">Exceptions
+          in thread functions</a>
 </h5></div></div></div>
 <p>
             If the function or callable object passed to the <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> constructor propagates an exception
@@ -995,11 +928,10 @@
             is called.
           </p>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining" title="
-          Joining and detaching">
-          Joining and detaching</a>
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_joining" title="Joining and detaching">Joining
+          and detaching</a>
 </h5></div></div></div>
 <p>
             When the <code class="computeroutput"><span class="identifier">thread_tuple</span><span class="special"><></span></code> object that represents a collection
@@ -1032,11 +964,9 @@
             interrupting the rest of the threads.
           </p>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_interruption"></a><a href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_interruption" title="
-          Interruption">
-          Interruption</a>
+<a name="toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_interruption"></a><a class="link" href="tutorial.html#toward_boost_interthreads.users_guide.tutorial.thread_tuple.thread_tuple_interruption" title="Interruption">Interruption</a>
 </h5></div></div></div>
 <p>
             A tuple of running threads can be <span class="emphasis"><em>interrupted</em></span> by
@@ -1058,11 +988,9 @@
             At any point, the interruption state for the current thread can be queried
             by calling <code class="computeroutput"><span class="identifier">interruption_enabled</span></code>.
           </p>
-<a name="interruption_points"></a><p>
-          </p>
 <p>
-            See the Boost.Threads
-            library for the Predefined Interruption Points.
+            <a name="interruption_points"></a> See the Boost.Threads library for the Predefined
+            Interruption Points.
           </p>
 </div>
 </div>
Modified: sandbox/interthreads/libs/interthreads/doc/interthreads.qbk
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/interthreads.qbk	(original)
+++ sandbox/interthreads/libs/interthreads/doc/interthreads.qbk	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -8,12 +8,13 @@
 
 [article Toward Boost.InterThreads
     [quickbook 1.5]
+    [version 0.1.3]
     [authors [Botet Escriba, Vicente J.]]
-    [copyright 2008-2009 Vicente J. Botet Escriba]
-    [purpose C++ Library extending the Boost.Thread library adding some inter threads mechanisms as
+    [copyright 2008-2009,2011 Vicente J. Botet Escriba]
+    [/purpose C++ Library extending the Boost.Thread library adding some inter threads mechanisms as
     asynchronous executors and asyncronous completion tokes framework with threaders/joiners, launcher.
     thread decorator, specific shared pointers and keep alive mechanism]
-    [category text]
+    [/category text]
     [license
         Distributed under the Boost Software License, Version 1.0.
         (See accompanying file LICENSE_1_0.txt or copy at
@@ -161,6 +162,4 @@
 
 [include reference.qbk]
 
-[include case_studies.qbk]
-
 [include appendices.qbk]
Modified: sandbox/interthreads/libs/interthreads/doc/overview.qbk
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/overview.qbk	(original)
+++ sandbox/interthreads/libs/interthreads/doc/overview.qbk	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -9,8 +9,43 @@
 [section:overview Overview]
 [/========================]
 
+
+[/====================================]
+[heading How to Use This Documentation]
+[/====================================]
+
+This documentation makes use of the following naming and formatting conventions.
+
+* Code is in `fixed width font` and is syntax-highlighted.
+* Replaceable text that you will need to supply is in [~italics].
+* If a name refers to a free function, it is specified like this:
+  `free_function()`; that is, it is in code font and its name is followed by `()`
+  to indicate that it is a free function.
+* If a name refers to a class template, it is specified like this:
+  `class_template<>`; that is, it is in code font and its name is followed by `<>`
+  to indicate that it is a class template.
+* If a name refers to a function-like macro, it is specified like this: `MACRO()`;
+  that is, it is uppercase in code font and its name is followed by `()` to
+  indicate that it is a function-like macro. Object-like macros appear without the
+  trailing `()`.
+* Names that refer to /concepts/ in the generic programming sense are
+  specified in CamelCase.
+
+[note In addition, notes such as this one specify non-essential information that
+provides additional background or rationale.]
+
+Finally, you can mentally add the following to any code fragments in this document:
+
+    // Include all of InterThreads
+    #include <boost/interthreads/interthreads.hpp>
+
+    // Create a namespace aliases
+    namespace bith = boost::interthreads;
+
+[include introduction.qbk]
+
 [/==================]
-[heading Description]
+[section Description]
 [/==================]
 
 __boost_interthreads__ extends __boost_thread__ adding some features:
@@ -44,39 +79,6 @@
 [note  thread_decorator and thread_specific_shared_ptr are based on the original implementation of [@http://www.boost-consulting.com/vault/index.php?directory=Concurrent%20Programming [*threadalert]]
 written by Roland Schwarz.]
 
+[endsect]
 
-
-[/====================================]
-[heading How to Use This Documentation]
-[/====================================]
-
-This documentation makes use of the following naming and formatting conventions.
-
-* Code is in `fixed width font` and is syntax-highlighted.
-* Replaceable text that you will need to supply is in [~italics].
-* If a name refers to a free function, it is specified like this:
-  `free_function()`; that is, it is in code font and its name is followed by `()`
-  to indicate that it is a free function.
-* If a name refers to a class template, it is specified like this:
-  `class_template<>`; that is, it is in code font and its name is followed by `<>`
-  to indicate that it is a class template.
-* If a name refers to a function-like macro, it is specified like this: `MACRO()`;
-  that is, it is uppercase in code font and its name is followed by `()` to
-  indicate that it is a function-like macro. Object-like macros appear without the
-  trailing `()`.
-* Names that refer to /concepts/ in the generic programming sense are
-  specified in CamelCase.
-
-[note In addition, notes such as this one specify non-essential information that
-provides additional background or rationale.]
-
-Finally, you can mentally add the following to any code fragments in this document:
-
-    // Include all of InterThreads
-    #include <boost/interthreads/interthreads.hpp>
-
-    // Create a namespace aliases
-    namespace bith = boost::interthreads;
-
-[include introduction.qbk]
 [endsect]
Modified: sandbox/interthreads/libs/interthreads/doc/rationale.qbk
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/rationale.qbk	(original)
+++ sandbox/interthreads/libs/interthreads/doc/rationale.qbk	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -10,7 +10,7 @@
 [/=======================================]
 
 [/=======================]
-[section Thread Decorator]
+[section:decorator Thread Decorator]
 [/=======================]
 
 [variablelist
@@ -26,7 +26,7 @@
 [endsect]
 
 [/==============================]
-[section Thread Specific Storage]
+[section:tss Thread Specific Storage]
 [/==============================]
 
 [variablelist
@@ -69,11 +69,11 @@
 ]
 
 [/==============================]
-[heading Comparaing TSSS and TSS]
+[heading:hcmp_tss Comparaing TSSS and TSS]
 [/==============================]
 
 
-[table Comparaing TSSS and TSS
+[table:tcmp_tss Comparaing TSSS and TSS
 [[Feature][thread_specific_shared_ptr][thread_specific_ptr][Compatible]]
 [[ownership][shared][exclusive][no]]
 [[default constructor][[*yes]][[*yes]][[*yes]]]
@@ -97,7 +97,7 @@
 [endsect]
 
 [/=================]
-[section Keep Alive]
+[section:ka Keep Alive]
 [/=================]
 
 [variablelist
@@ -121,7 +121,7 @@
 
 
 [/===================]
-[section Thread Tuple]
+[section:tuple Thread Tuple]
 [/===================]
 
 [variablelist
@@ -166,11 +166,11 @@
 ]
 
 [/=======================================================]
-[heading Comparaing thread, thread_group and thread_tuple]
+[heading:hcmp_thread Comparaing thread, thread_group and thread_tuple]
 [/=======================================================]
 
 
-[table Comparaing thread, thread_group and thread_tuple
+[table:tcmp_thread Comparaing thread, thread_group and thread_tuple
 [[Feature][thread][thread_group][thread_tuple][Compatible]]
 [[default constructor][[*yes]][[*yes]][[*yes]][[*yes]]]
 [[copiable][no][no][no][[*yes]]]
Modified: sandbox/interthreads/libs/interthreads/doc/users_guide.qbk
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/users_guide.qbk	(original)
+++ sandbox/interthreads/libs/interthreads/doc/users_guide.qbk	2011-02-16 14:38:13 EST (Wed, 16 Feb 2011)
@@ -1,4 +1,4 @@
-[/
+
 [/
   (C) Copyright 2008-2009 Vicente J. Botet Escriba
   Distributed under the Boost Software License, Version 1.0.
@@ -13,6 +13,7 @@
 [include getting_started.qbk]
 [include tutorial.qbk]
 
+[include case_studies.qbk]
 
 [/==============================]
 [section:bibliography References]
@@ -48,4 +49,4 @@
 
 [endsect]
 
-[endsect]
\ No newline at end of file
+[endsect]