|
Boost-Commit : |
From: matt_calabrese_at_[hidden]
Date: 2007-06-30 16:03:00
Author: matt_calabrese
Date: 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
New Revision: 7325
URL: http://svn.boost.org/trac/boost/changeset/7325
Log:
Cropping documentation to interlocked operations until other concept design changes are made.
Added:
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/
- copied from r7322, /sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/interlocked_type/
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/interlocked_arithmetic_type.qbk
- copied unchanged from r7324, /sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/interlocked_type/interlocked_arithmetic_type.qbk
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/interlocked_basic_type.qbk
- copied, changed from r7324, /sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/interlocked_type/interlocked_basic_type.qbk
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/interlocked_integer_type.qbk
- copied unchanged from r7324, /sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/interlocked_type/interlocked_integer_type.qbk
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/interlocked_natural_type.qbk
- copied unchanged from r7324, /sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/interlocked_type/interlocked_natural_type.qbk
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/interlocked_operation.qbk
- copied, changed from r7324, /sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/interlocked_type/interlocked_operation.qbk
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked.html
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts.html
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_arithmetic_type.html
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_basic_type.html
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_integer_type.html
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_operation.html
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked.qbk
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts.qbk
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_arithmetic_type.qbk
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_basic_type.qbk
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_integer_type.qbk
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_natural_type.qbk
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_operation.qbk
Removed:
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/interlocked_type/
Text files modified:
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/act.qbk | 15 ++---
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts.qbk | 2
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/interlocked_basic_type.qbk | 3
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/interlocked_operation.qbk | 2
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/HTML.manifest | 22 ++------
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/compiler_setup.html | 16 +++---
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_arithmetic_type.html | 14 ++--
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_basic_type.html | 13 ++--
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_integer_type.html | 14 ++--
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_operation.html | 4
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/queue_concepts/pc_queue.html | 4
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/queue_concepts/queue_policy.html | 8 +-
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked_integer.html | 8 +-
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked_integer/integer_typedefs.html | 16 +++---
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/introduction.html | 14 ++--
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/rationale.html | 106 +++++++++++++++++++++++++--------------
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/index.html | 85 ++-----------------------------
sandbox/SOC/2006/concurrency/trunk/libs/act/doc/rationale.qbk | 8 --
18 files changed, 146 insertions(+), 208 deletions(-)
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/act.qbk
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/act.qbk (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/act.qbk 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -25,12 +25,12 @@
[def __consumer__ [link boost_act.concepts.consumer_concepts.consumer [concept Consumer]]]
[def __queue_policy__ [link boost_act.concepts.queue_concepts.queue_policy [concept Queue Policy]]]
[def __pc_queue__ [link boost_act.concepts.queue_concepts.pc_queue [concept PC Queue]]]
-[def __interlocked_type__ [link boost_act.concepts.interlocked_concepts [concept Interlocked Type]]]
-[def __interlocked_operation__ [link boost_act.concepts.interlocked_concepts.interlocked_operation [concept Interlocked Operation]]]
-[def __semantic_type__ [link boost_act.concepts.interlocked_concepts.interlocked_operation.semantic_type [concept Semantic Type]]]
-[def __interlocked_basic_type__ [link boost_act.concepts.interlocked_concepts.interlocked_basic_type [concept Interlocked Basic Type]]]
-[def __interlocked_arithmetic_type__ [link boost_act.concepts.interlocked_concepts.interlocked_arithmetic_type [concept Interlocked Arithmetic Type]]]
-[def __interlocked_integer_type__ [link boost_act.concepts.interlocked_concepts.interlocked_integer_type [concept Interlocked Integer Type]]]
+[def __interlocked_type__ [link boost_act.interlocked.interlocked_concepts.interlocked_type [concept Interlocked Type]]]
+[def __interlocked_operation__ [link boost_act.interlocked.interlocked_concepts.interlocked_operation [concept Interlocked Operation]]]
+[def __semantic_type__ [link boost_act.interlocked.interlocked_concepts.interlocked_operation.semantic_type [concept Semantic Type]]]
+[def __interlocked_basic_type__ [link boost_act.interlocked.interlocked_concepts.interlocked_basic_type [concept Interlocked Basic Type]]]
+[def __interlocked_arithmetic_type__ [link boost_act.interlocked.interlocked_concepts.interlocked_arithmetic_type [concept Interlocked Arithmetic Type]]]
+[def __interlocked_integer_type__ [link boost_act.interlocked.interlocked_concepts.interlocked_integer_type [concept Interlocked Integer Type]]]
[def __worker_policy__ [link boost_act.concepts.worker_policy [concept Worker Policy]]]
[def __worker__ [link boost_act.concepts.worker [concept Worker]]]
[def __threaded_worker_policy__ [link boost_act.concepts.threaded_worker_policy [concept Threaded Worker Policy]]]
@@ -40,6 +40,5 @@
[include brief_description.qbk]
[include introduction.qbk]
[include compiler_setup.qbk]
-[include concepts.qbk]
-[include interlocked_integer.qbk]
+[include interlocked.qbk]
[include rationale.qbk]
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts.qbk
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts.qbk (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts.qbk 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -7,8 +7,6 @@
[endsect]
-[include concepts/interlocked_type.qbk]
-
[section Queue Concepts]
[include concepts/pc_queue.qbk]
Copied: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/interlocked_basic_type.qbk (from r7324, /sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/interlocked_type/interlocked_basic_type.qbk)
==============================================================================
--- /sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/interlocked_type/interlocked_basic_type.qbk (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/interlocked_basic_type.qbk 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -8,7 +8,7 @@
built-in types may be [concept Interlocked Basic Types], although this will
likely change in future releases.
-[variablelist Interlocked Basic Type Descriptive Variable Definitions
+[variablelist Notation
[[`I`] [An [concept Interlocked Basic Type].] ]
[[`i`] [A value of type `I&`.] ]
[[`C1`] [A type which is convertible to `remove_cv<I>::type&`.] ]
@@ -67,7 +67,6 @@
#include <boost/act/interlocked/load/load_acquire.hpp>
#include <boost/act/interlocked/load/load_unordered.hpp>
-
// Forward declarations.
#include <boost/act/interlocked/load_fwd.hpp>
#include <boost/act/interlocked/load/load_fwd.hpp>
Copied: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/interlocked_operation.qbk (from r7324, /sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/interlocked_type/interlocked_operation.qbk)
==============================================================================
--- /sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/interlocked_type/interlocked_operation.qbk (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/concepts/concepts/interlocked_operation.qbk 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -9,7 +9,7 @@
the variable definitions below, the following expressions must be well-formed
and have the indicated effects.
-[variablelist Interlocked Operation Definitions
+[variablelist Notation
[[[~name]][An [concept Interlocked Operation].] ]
[[`S`] [A __semantic_type__.] ]
[[[~args]] [The argument list (if any) for the
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/HTML.manifest
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/HTML.manifest (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/HTML.manifest 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -3,20 +3,10 @@
boost_act/brief_description.html
boost_act/introduction.html
boost_act/compiler_setup.html
-boost_act/concepts.html
-boost_act/concepts/consumer_concepts.html
-boost_act/concepts/consumer_concepts/consumer.html
-boost_act/concepts/consumer_concepts/consumer_policy.html
-boost_act/concepts/interlocked_concepts.html
-boost_act/concepts/interlocked_concepts/interlocked_operation.html
-boost_act/concepts/interlocked_concepts/interlocked_basic_type.html
-boost_act/concepts/interlocked_concepts/interlocked_arithmetic_type.html
-boost_act/concepts/interlocked_concepts/interlocked_integer_type.html
-boost_act/concepts/queue_concepts.html
-boost_act/concepts/queue_concepts/pc_queue.html
-boost_act/concepts/queue_concepts/queue_policy.html
-boost_act/interlocked_integer.html
-boost_act/interlocked_integer/integer_typedefs.html
+boost_act/interlocked.html
+boost_act/interlocked/interlocked_concepts.html
+boost_act/interlocked/interlocked_concepts/interlocked_operation.html
+boost_act/interlocked/interlocked_concepts/interlocked_basic_type.html
+boost_act/interlocked/interlocked_concepts/interlocked_arithmetic_type.html
+boost_act/interlocked/interlocked_concepts/interlocked_integer_type.html
boost_act/rationale.html
-boost_act/rationale/policy_based_design.html
-boost_act/rationale/actions_vs__futures.html
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/compiler_setup.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/compiler_setup.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/compiler_setup.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
- <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Compiler Setup</title><link rel="stylesheet" href="../../../doc/style/html/main.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.72.0" /><link rel="start" href="../index.html" title="Boost.Act" /><link rel="up" href="../index.html" title="Boost.Act" /><link rel="prev" href="introduction.html" title="Introduction" /><link rel="next" href="concepts.html" title="Concepts" /><script type="text/javascript" src="../../../doc/javascript/main.js"></script>
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Compiler Setup</title><link rel="stylesheet" href="../../../doc/style/html/main.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.72.0" /><link rel="start" href="../index.html" title="Boost.Act" /><link rel="up" href="../index.html" title="Boost.Act" /><link rel="prev" href="introduction.html" title="Introduction" /><link rel="next" href="interlocked.html" title="Interlocked" /><script type="text/javascript" src="../../../doc/javascript/main.js"></script>
<script type="text/javascript" > <!--
boostscript.init( new Array(
boostscript.nested_links,
@@ -71,7 +71,7 @@
</a>
</div>
<div class="spirit-nav-icon">
- <a accesskey="n" href="concepts.html">
+ <a accesskey="n" href="interlocked.html">
<div class="next-icon"></div>
</a>
</div>
@@ -88,7 +88,7 @@
</div>
</div>
<a id="boost_act.compiler_setup.activating_openmp_support_in_visual_c___2005"></a>
- <h4><a id="id390190"></a>
+ <h4><a id="id390172"></a>
<a href="compiler_setup.html#boost_act.compiler_setup.activating_openmp_support_in_visual_c___2005">Activating
OpenMP Support in Visual C++ 2005</a>
</h4>
@@ -139,7 +139,7 @@
</div>
</div>
<div class="table">
- <a id="id390258"></a>
+ <a id="id390240"></a>
<p class="title">
<b>Table 1. OpenMP Extension Support</b>
</p>
@@ -301,7 +301,7 @@
<p>
</p>
<a id="boost_act.compiler_setup.activating_openmp_support_in_visual_c___2005"></a>
- <h4><a id="id388503"></a>
+ <h4><a id="id388485"></a>
<a href="compiler_setup.html#boost_act.compiler_setup.activating_openmp_support_in_visual_c___2005">Activating
OpenMP Support in Visual C++ 2005</a>
</h4>
@@ -315,7 +315,7 @@
get a linker error upon build.
</p>
<a id="boost_act.compiler_setup.linking_with_boost_threads"></a>
- <h4><a id="id388563"></a>
+ <h4><a id="id388545"></a>
<a href="compiler_setup.html#boost_act.compiler_setup.linking_with_boost_threads">Linking
with Boost.Threads</a>
</h4>
@@ -326,7 +326,7 @@
and Install</a>.
</p>
<a id="boost_act.compiler_setup.compiling_the_library"></a>
- <h4><a id="id388616"></a>
+ <h4><a id="id388598"></a>
<a href="compiler_setup.html#boost_act.compiler_setup.compiling_the_library">Compiling the
Library</a>
</h4>
@@ -357,7 +357,7 @@
</a>
</div>
<div class="spirit-nav-icon">
- <a accesskey="n" href="concepts.html">
+ <a accesskey="n" href="interlocked.html">
<div class="next-icon"></div>
</a>
</div>
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_arithmetic_type.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_arithmetic_type.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_arithmetic_type.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -89,7 +89,7 @@
</div>
</div>
<a id="boost_act.concepts.interlocked_concepts.interlocked_arithmetic_type.description"></a>
- <h6><a id="id458755"></a>
+ <h6><a id="id458754"></a>
<a href="interlocked_arithmetic_type.html#boost_act.concepts.interlocked_concepts.interlocked_arithmetic_type.description">Description</a>
</h6>
<p>
@@ -145,7 +145,7 @@
</dl>
</div>
<a id="boost_act.concepts.interlocked_concepts.interlocked_arithmetic_type.refinement_of"></a>
- <h6><a id="id458965"></a>
+ <h6><a id="id458964"></a>
<a href="interlocked_arithmetic_type.html#boost_act.concepts.interlocked_concepts.interlocked_arithmetic_type.refinement_of">Refinement
of</a>
</h6>
@@ -154,7 +154,7 @@
Type</code></a>
</p>
<a id="boost_act.concepts.interlocked_concepts.interlocked_arithmetic_type.expression_requirements"></a>
- <h6><a id="id459013"></a>
+ <h6><a id="id459012"></a>
<a href="interlocked_arithmetic_type.html#boost_act.concepts.interlocked_concepts.interlocked_arithmetic_type.expression_requirements">Expression
Requirements</a>
</h6>
@@ -206,7 +206,7 @@
</div>
</div>
<div class="table">
- <a id="id459222"></a>
+ <a id="id459221"></a>
<p class="title">
<b>Table 7. Interlocked Arithmetic Type Requirements</b>
</p>
@@ -323,7 +323,7 @@
</div>
<br class="table-break" />
<a id="boost_act.concepts.interlocked_concepts.interlocked_arithmetic_type.headers"></a>
- <h6><a id="id459737"></a>
+ <h6><a id="id459736"></a>
<a href="interlocked_arithmetic_type.html#boost_act.concepts.interlocked_concepts.interlocked_arithmetic_type.headers">Headers</a>
</h6>
<p>
@@ -335,10 +335,10 @@
<div class="box-top-right"></div>
<div class="box-top"></div>
<div class="box-inner-wrapper">
- <div class="style-switcher-box" id="id459758">
+ <div class="style-switcher-box" id="id459757">
<script type="text/javascript" > <!--
boostscript.call( boostscript.style_switcher, 'insert_style_selector',
- 'id459758',
+ 'id459757',
'../../../../../doc/style/html/syntax.xml',
'../../../../../doc/style/html'
);
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_basic_type.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_basic_type.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_basic_type.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -102,7 +102,7 @@
</p>
<div class="variablelist">
<p class="title">
- <b>Interlocked Basic Type Descriptive Variable Definitions</b>
+ <b>Notation</b>
</p>
<dl>
<dt>
@@ -157,7 +157,7 @@
</dl>
</div>
<a id="boost_act.concepts.interlocked_concepts.interlocked_basic_type.expression_requirements"></a>
- <h6><a id="id457471"></a>
+ <h6><a id="id457470"></a>
<a href="interlocked_basic_type.html#boost_act.concepts.interlocked_concepts.interlocked_basic_type.expression_requirements">Expression
Requirements</a>
</h6>
@@ -205,7 +205,7 @@
</div>
</div>
<div class="table">
- <a id="id457668"></a>
+ <a id="id457667"></a>
<p class="title">
<b>Table 6. Interlocked Type Requirements</b>
</p>
@@ -290,7 +290,7 @@
</div>
<br class="table-break" />
<a id="boost_act.concepts.interlocked_concepts.interlocked_basic_type.headers"></a>
- <h6><a id="id457995"></a>
+ <h6><a id="id457994"></a>
<a href="interlocked_basic_type.html#boost_act.concepts.interlocked_concepts.interlocked_basic_type.headers">Headers</a>
</h6>
<p>
@@ -302,10 +302,10 @@
<div class="box-top-right"></div>
<div class="box-top"></div>
<div class="box-inner-wrapper">
- <div class="style-switcher-box" id="id458016">
+ <div class="style-switcher-box" id="id458015">
<script type="text/javascript" > <!--
boostscript.call( boostscript.style_switcher, 'insert_style_selector',
- 'id458016',
+ 'id458015',
'../../../../../doc/style/html/syntax.xml',
'../../../../../doc/style/html'
);
@@ -324,7 +324,6 @@
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">load</span><span class="special">/</span><span class="identifier">load_acquire</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">load</span><span class="special">/</span><span class="identifier">load_unordered</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
-
<span class="comment">// Forward declarations.
</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">load_fwd</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">load</span><span class="special">/</span><span class="identifier">load_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_integer_type.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_integer_type.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_integer_type.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -89,7 +89,7 @@
</div>
</div>
<a id="boost_act.concepts.interlocked_concepts.interlocked_integer_type.description"></a>
- <h6><a id="id460664"></a>
+ <h6><a id="id460663"></a>
<a href="interlocked_integer_type.html#boost_act.concepts.interlocked_concepts.interlocked_integer_type.description">Description</a>
</h6>
<p>
@@ -145,7 +145,7 @@
</dl>
</div>
<a id="boost_act.concepts.interlocked_concepts.interlocked_integer_type.refinement_of"></a>
- <h6><a id="id460882"></a>
+ <h6><a id="id460881"></a>
<a href="interlocked_integer_type.html#boost_act.concepts.interlocked_concepts.interlocked_integer_type.refinement_of">Refinement
of</a>
</h6>
@@ -154,7 +154,7 @@
<code class="literal">Interlocked Arithmetic Type</code></a>
</p>
<a id="boost_act.concepts.interlocked_concepts.interlocked_integer_type.expression_requirements"></a>
- <h6><a id="id460929"></a>
+ <h6><a id="id460928"></a>
<a href="interlocked_integer_type.html#boost_act.concepts.interlocked_concepts.interlocked_integer_type.expression_requirements">Expression
Requirements</a>
</h6>
@@ -206,7 +206,7 @@
</div>
</div>
<div class="table">
- <a id="id461146"></a>
+ <a id="id461144"></a>
<p class="title">
<b>Table 8. Interlocked Integer Type Requirements</b>
</p>
@@ -341,7 +341,7 @@
</div>
<br class="table-break" />
<a id="boost_act.concepts.interlocked_concepts.interlocked_integer_type.headers"></a>
- <h6><a id="id461784"></a>
+ <h6><a id="id461783"></a>
<a href="interlocked_integer_type.html#boost_act.concepts.interlocked_concepts.interlocked_integer_type.headers">Headers</a>
</h6>
<p>
@@ -353,10 +353,10 @@
<div class="box-top-right"></div>
<div class="box-top"></div>
<div class="box-inner-wrapper">
- <div class="style-switcher-box" id="id461806">
+ <div class="style-switcher-box" id="id461805">
<script type="text/javascript" > <!--
boostscript.call( boostscript.style_switcher, 'insert_style_selector',
- 'id461806',
+ 'id461805',
'../../../../../doc/style/html/syntax.xml',
'../../../../../doc/style/html'
);
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_operation.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_operation.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/interlocked_concepts/interlocked_operation.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -101,7 +101,7 @@
</p>
<div class="variablelist">
<p class="title">
- <b>Interlocked Operation Definitions</b>
+ <b>Notation</b>
</p>
<dl>
<dt>
@@ -138,7 +138,7 @@
</dl>
</div>
<a id="boost_act.concepts.interlocked_concepts.interlocked_operation.expression_requirements"></a>
- <h6><a id="id456650"></a>
+ <h6><a id="id456649"></a>
<a href="interlocked_operation.html#boost_act.concepts.interlocked_concepts.interlocked_operation.expression_requirements">Expression
Requirements</a>
</h6>
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/queue_concepts/pc_queue.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/queue_concepts/pc_queue.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/queue_concepts/pc_queue.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -174,12 +174,12 @@
</dl>
</div>
<a id="boost_act.concepts.queue_concepts.pc_queue.expression_requirements"></a>
- <h6><a id="id463002"></a>
+ <h6><a id="id463001"></a>
<a href="pc_queue.html#boost_act.concepts.queue_concepts.pc_queue.expression_requirements">Expression
Requirements</a>
</h6>
<div class="table">
- <a id="id463020"></a>
+ <a id="id463018"></a>
<p class="title">
<b>Table 9. PC Queue Requirements</b>
</p>
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/queue_concepts/queue_policy.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/queue_concepts/queue_policy.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/concepts/queue_concepts/queue_policy.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -183,12 +183,12 @@
</dl>
</div>
<a id="boost_act.concepts.queue_concepts.queue_policy.expression_requirements"></a>
- <h6><a id="id464660"></a>
+ <h6><a id="id464659"></a>
<a href="queue_policy.html#boost_act.concepts.queue_concepts.queue_policy.expression_requirements">Expression
Requirements</a>
</h6>
<div class="table">
- <a id="id464678"></a>
+ <a id="id464676"></a>
<p class="title">
<b>Table 10. Queue Policy Requirements</b>
</p>
@@ -270,7 +270,7 @@
</div>
<br class="table-break" />
<a id="boost_act.concepts.queue_concepts.queue_policy.queue_policy_pc_queue_unordered_parameters"></a>
- <h6><a id="id464978"></a>
+ <h6><a id="id464976"></a>
<a href="queue_policy.html#boost_act.concepts.queue_concepts.queue_policy.queue_policy_pc_queue_unordered_parameters">Queue
Policy PC Queue Unordered Parameters</a>
</h6>
@@ -357,7 +357,7 @@
</dl>
</div>
<a id="boost_act.concepts.queue_concepts.queue_policy.queue_policy_pc_queue_type_selection_examples"></a>
- <h6><a id="id465150"></a>
+ <h6><a id="id465149"></a>
<a href="queue_policy.html#boost_act.concepts.queue_concepts.queue_policy.queue_policy_pc_queue_type_selection_examples">Queue
Policy PC Queue Type Selection Examples</a>
</h6>
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interlocked</title><link rel="stylesheet" href="../../../doc/style/html/main.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.72.0" /><link rel="start" href="../index.html" title="Boost.Act" /><link rel="up" href="../index.html" title="Boost.Act" /><link rel="prev" href="compiler_setup.html" title="Compiler Setup" /><link rel="next" href="interlocked/interlocked_concepts.html" title="Interlocked Concepts" /><script type="text/javascript" src="../../../doc/javascript/main.js"></script>
+ <script type="text/javascript" > <!--
+ boostscript.init( new Array(
+ boostscript.nested_links,
+ boostscript.style_switcher,
+ boostscript.common
+ ),
+ '../../../doc/javascript'
+ );
+ //--></script>
+
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'include_alternate_stylesheets',
+ '../../../doc/style/html/syntax.xml',
+ '../../../doc/style/html'
+ );
+ //--></script>
+<link rel="alternate stylesheet" type="text/css" title="Quickbook source" href="../../../doc/style/html/conversion/boostbook_to_quickbook.css" />
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'load_user_stylesheet' );
+ //--></script>
+</head>
+ <body>
+ <div id="heading">
+ <div id="heading-placard"></div>
+ <div class="heading-navigation-box">
+ <div class="nested-links-select-box" id="chapters_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'chapters_select_box',
+ '../../../doc/chapters.xml',
+ '../../../libs');
+ //--></script>
+</div>
+ <div class="nested-links-select-box" id="sections_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'sections_select_box',
+ '../sections.xml',
+ '.././');
+ //--></script>
+</div>
+ </div>
+ <div class="search-box">
+ <form id="cref" action="http://google.com/cse">
+ <div class="search-box-label"></div>
+ <div>
+ <input type="hidden" name="cref" value="http://tinyurl.com/33np8c" />
+ <input class="search-box" type="text" name="q" id="q" size="40" maxlength="255" alt="Search Text" />
+ </div>
+ </form>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="compiler_setup.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../index.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="interlocked/interlocked_concepts.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="body">
+ <div id="body-inner">
+ <div id="content">
+ <div class="section">
+ <div class="titlepage">
+ <div>
+ <div>
+ <h2 class="title"><a id="boost_act.interlocked"></a>Interlocked</h2>
+ </div>
+ </div>
+ </div>
+ <div class="toc">
+ <div class="box-outer-wrapper">
+ <div class="box-top-left"></div>
+ <div class="box-top-right"></div>
+ <div class="box-top"></div>
+ <div class="box-inner-wrapper">
+ <dl>
+ <dt>
+ <span class="section">
+ <a href="interlocked/interlocked_concepts.html">Interlocked
+ Concepts</a>
+ </span>
+ </dt>
+ <dd>
+ <dl>
+ <dt>
+ <span class="section">
+ <a href="interlocked/interlocked_concepts/interlocked_operation.html">Interlocked
+ Operation</a>
+ </span>
+ </dt>
+ <dt>
+ <span class="section">
+ <a href="interlocked/interlocked_concepts/interlocked_basic_type.html">Interlocked
+ Basic Type</a>
+ </span>
+ </dt>
+ <dt>
+ <span class="section">
+ <a href="interlocked/interlocked_concepts/interlocked_arithmetic_type.html">Interlocked
+ Arithmetic Type</a>
+ </span>
+ </dt>
+ <dt>
+ <span class="section">
+ <a href="interlocked/interlocked_concepts/interlocked_integer_type.html">Interlocked
+ Integer Type</a>
+ </span>
+ </dt>
+ </dl>
+ </dd>
+ </dl>
+ </div>
+ <div class="box-bottom-left"></div>
+ <div class="box-bottom-right"></div>
+ <div class="box-bottom"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="compiler_setup.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../index.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="interlocked/interlocked_concepts.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="footer">
+ <div id="footer-left">
+ <div id="copyright">
+ <p>Copyright © 2006 , 2007 Matthew Calabrese</p>
+ </div>
+ <div id="license">
+ <p>Distributed under the
+ Boost Software License, Version 1.0.
+ </p>
+ </div>
+ </div>
+ <div id="footer-right">
+ <div id="banners">
+ <p id="banner-xhtml">
+ XHTML 1.0
+ </p>
+ <p id="banner-css">
+ CSS
+ </p>
+ <p id="banner-sourceforge">
+ SourceForge
+ </p>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </body>
+</html>
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interlocked Concepts</title><link rel="stylesheet" href="../../../../doc/style/html/main.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.72.0" /><link rel="start" href="../../index.html" title="Boost.Act" /><link rel="up" href="../interlocked.html" title="Interlocked" /><link rel="prev" href="../interlocked.html" title="Interlocked" /><link rel="next" href="interlocked_concepts/interlocked_operation.html" title="Interlocked Operation" /><script type="text/javascript" src="../../../../doc/javascript/main.js"></script>
+ <script type="text/javascript" > <!--
+ boostscript.init( new Array(
+ boostscript.nested_links,
+ boostscript.style_switcher,
+ boostscript.common
+ ),
+ '../../../../doc/javascript'
+ );
+ //--></script>
+
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'include_alternate_stylesheets',
+ '../../../../doc/style/html/syntax.xml',
+ '../../../../doc/style/html'
+ );
+ //--></script>
+<link rel="alternate stylesheet" type="text/css" title="Quickbook source" href="../../../../doc/style/html/conversion/boostbook_to_quickbook.css" />
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'load_user_stylesheet' );
+ //--></script>
+</head>
+ <body>
+ <div id="heading">
+ <div id="heading-placard"></div>
+ <div class="heading-navigation-box">
+ <div class="nested-links-select-box" id="chapters_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'chapters_select_box',
+ '../../../../doc/chapters.xml',
+ '../../../../libs');
+ //--></script>
+</div>
+ <div class="nested-links-select-box" id="sections_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'sections_select_box',
+ '../../sections.xml',
+ '../.././');
+ //--></script>
+</div>
+ </div>
+ <div class="search-box">
+ <form id="cref" action="http://google.com/cse">
+ <div class="search-box-label"></div>
+ <div>
+ <input type="hidden" name="cref" value="http://tinyurl.com/33np8c" />
+ <input class="search-box" type="text" name="q" id="q" size="40" maxlength="255" alt="Search Text" />
+ </div>
+ </form>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="../interlocked.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../interlocked.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="interlocked_concepts/interlocked_operation.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="body">
+ <div id="body-inner">
+ <div id="content">
+ <div class="section">
+ <div class="titlepage">
+ <div>
+ <div>
+ <h3 class="title"><a id="boost_act.interlocked.interlocked_concepts"></a><a href="interlocked_concepts.html" title="Interlocked Concepts">Interlocked
+ Concepts</a></h3>
+ </div>
+ </div>
+ </div>
+ <div class="toc">
+ <div class="box-outer-wrapper">
+ <div class="box-top-left"></div>
+ <div class="box-top-right"></div>
+ <div class="box-top"></div>
+ <div class="box-inner-wrapper">
+ <dl>
+ <dt>
+ <span class="section">
+ <a href="interlocked_concepts/interlocked_operation.html">Interlocked
+ Operation</a>
+ </span>
+ </dt>
+ <dt>
+ <span class="section">
+ <a href="interlocked_concepts/interlocked_basic_type.html">Interlocked
+ Basic Type</a>
+ </span>
+ </dt>
+ <dt>
+ <span class="section">
+ <a href="interlocked_concepts/interlocked_arithmetic_type.html">Interlocked
+ Arithmetic Type</a>
+ </span>
+ </dt>
+ <dt>
+ <span class="section">
+ <a href="interlocked_concepts/interlocked_integer_type.html">Interlocked
+ Integer Type</a>
+ </span>
+ </dt>
+ </dl>
+ </div>
+ <div class="box-bottom-left"></div>
+ <div class="box-bottom-right"></div>
+ <div class="box-bottom"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="../interlocked.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../interlocked.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="interlocked_concepts/interlocked_operation.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="footer">
+ <div id="footer-left">
+ <div id="copyright">
+ <p>Copyright © 2006 , 2007 Matthew Calabrese</p>
+ </div>
+ <div id="license">
+ <p>Distributed under the
+ Boost Software License, Version 1.0.
+ </p>
+ </div>
+ </div>
+ <div id="footer-right">
+ <div id="banners">
+ <p id="banner-xhtml">
+ XHTML 1.0
+ </p>
+ <p id="banner-css">
+ CSS
+ </p>
+ <p id="banner-sourceforge">
+ SourceForge
+ </p>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </body>
+</html>
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_arithmetic_type.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_arithmetic_type.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interlocked Arithmetic Type</title><link rel="stylesheet" href="../../../../../doc/style/html/main.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.72.0" /><link rel="start" href="../../../index.html" title="Boost.Act" /><link rel="up" href="../interlocked_concepts.html" title="Interlocked Concepts" /><link rel="prev" href="interlocked_basic_type.html" title="Interlocked Basic Type" /><link rel="next" href="interlocked_integer_type.html" title="Interlocked Integer Type" /><script type="text/javascript" src="../../../../../doc/javascript/main.js"></script>
+ <script type="text/javascript" > <!--
+ boostscript.init( new Array(
+ boostscript.nested_links,
+ boostscript.style_switcher,
+ boostscript.common
+ ),
+ '../../../../../doc/javascript'
+ );
+ //--></script>
+
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'include_alternate_stylesheets',
+ '../../../../../doc/style/html/syntax.xml',
+ '../../../../../doc/style/html'
+ );
+ //--></script>
+<link rel="alternate stylesheet" type="text/css" title="Quickbook source" href="../../../../../doc/style/html/conversion/boostbook_to_quickbook.css" />
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'load_user_stylesheet' );
+ //--></script>
+</head>
+ <body>
+ <div id="heading">
+ <div id="heading-placard"></div>
+ <div class="heading-navigation-box">
+ <div class="nested-links-select-box" id="chapters_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'chapters_select_box',
+ '../../../../../doc/chapters.xml',
+ '../../../../../libs');
+ //--></script>
+</div>
+ <div class="nested-links-select-box" id="sections_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'sections_select_box',
+ '../../../sections.xml',
+ '../../.././');
+ //--></script>
+</div>
+ </div>
+ <div class="search-box">
+ <form id="cref" action="http://google.com/cse">
+ <div class="search-box-label"></div>
+ <div>
+ <input type="hidden" name="cref" value="http://tinyurl.com/33np8c" />
+ <input class="search-box" type="text" name="q" id="q" size="40" maxlength="255" alt="Search Text" />
+ </div>
+ </form>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="interlocked_basic_type.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../interlocked_concepts.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../../../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="interlocked_integer_type.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="body">
+ <div id="body-inner">
+ <div id="content">
+ <div class="section">
+ <div class="titlepage">
+ <div>
+ <div>
+ <h4 class="title"><a id="boost_act.interlocked.interlocked_concepts.interlocked_arithmetic_type"></a><a href="interlocked_arithmetic_type.html" title="Interlocked Arithmetic Type">Interlocked
+ Arithmetic Type</a></h4>
+ </div>
+ </div>
+ </div>
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_arithmetic_type.description"></a>
+ <h6><a id="id457688"></a>
+ Description
+ </h6>
+ <p>
+ An <code class="literal">Interlocked Arithmetic Type</code> is an <a href="interlocked_basic_type.html" title="Interlocked Basic Type">
+ <code class="literal">Interlocked Basic Type</code></a> which supports common
+ arithmetic operations.
+ </p>
+ <div class="variablelist">
+ <p class="title">
+ <b>Notation</b>
+ </p>
+ <dl>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">I</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ An <code class="literal">Interlocked Arithmetic Type</code>.
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">i</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ A value of type <code class="computeroutput"><span class="identifier">I</span></code>.
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">C1</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ A type which is convertible to <code class="computeroutput"><span class="identifier">remove_cv</span><span class="special"><</span><span class="identifier">I</span><span class="special">>::</span><span class="identifier">type</span><span class="special">&</span></code>.
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">c1</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ A value of type <code class="computeroutput"><span class="identifier">C1</span> <span class="keyword">const</span><span class="special">&</span></code>.
+ </dd>
+ </dl>
+ </div>
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_arithmetic_type.refinement_of"></a>
+ <h6><a id="id457898"></a>
+ <a href="interlocked_arithmetic_type.html#boost_act.interlocked.interlocked_concepts.interlocked_arithmetic_type.refinement_of">Refinement
+ of</a>
+ </h6>
+ <p>
+ <a href="../../../">
+ <code class="literal">Interlocked Type</code></a>
+ </p>
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_arithmetic_type.expression_requirements"></a>
+ <h6><a id="id457946"></a>
+ <a href="interlocked_arithmetic_type.html#boost_act.interlocked.interlocked_concepts.interlocked_arithmetic_type.expression_requirements">Expression
+ Requirements</a>
+ </h6>
+ <p>
+ In order to be considered a valid <code class="literal">Interlocked Arithmetic Type</code>,
+ given the variable definitions below, the following expressions must be
+ well-formed and have the indicated effects, in addition to those requirements
+ of <a href="interlocked_basic_type.html" title="Interlocked Basic Type">
+ <code class="literal">Interlocked Basic Type</code></a>. <code class="literal">Interlocked
+ Arithmetic Types</code> also support all operations specified in the
+ C++ standard for arithmetic types. Such operations do not imply memory
+ barriers of any kind.
+ </p>
+ <div class="note">
+ <div class="box-outer-wrapper">
+ <div class="box-top-left"></div>
+ <div class="box-top-right"></div>
+ <div class="box-top"></div>
+ <div class="box-inner-wrapper">
+ <div class="admonition-graphic">
+ <div class="admonition-icon">
+ <div class="note-icon"></div>
+ </div>
+ </div>
+ <div class="admonition-body">
+ <div class="admonition-title">Note</div>
+ <div class="admonition-content">
+ <p>
+ </p>
+ <p>
+ Each of the following operations is a valid <a href="interlocked_operation.html" title="Interlocked Operation">
+ <code class="literal">Interlocked Operation</code></a>, therefore user-specified
+ semantics may be applied. In addition to this, all operations listed
+ below have a return type of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_cv</span><span class="special"><</span><span class="identifier">IV</span><span class="special">>::</span><span class="identifier">type</span></code>
+ and yield the value of target object prior to the operation being applied.
+ Allowed user-specified semantics for these operations are <code class="computeroutput"><span class="identifier">acquire</span></code>, <code class="computeroutput"><span class="identifier">release</span></code>,
+ <code class="computeroutput"><span class="identifier">acq_rel</span></code>, <code class="computeroutput"><span class="identifier">unordered</span></code>, and <code class="computeroutput"><span class="identifier">default_</span></code>.
+ If no semantics are explicitly specified or if <code class="computeroutput"><span class="identifier">default_</span></code>
+ semantics are specified, then the operation is performed with <code class="computeroutput"><span class="identifier">acq_rel</span></code> semantics.
+ </p>
+ <p>
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="box-bottom-left"></div>
+ <div class="box-bottom-right"></div>
+ <div class="box-bottom"></div>
+ </div>
+ </div>
+ <div class="table">
+ <a id="id458158"></a>
+ <p class="title">
+ <b>Table 5. Interlocked Arithmetic Type Requirements</b>
+ </p>
+ <div class="table-contents">
+ <table class="table" summary="Interlocked Arithmetic Type Requirements">
+ <colgroup>
+ <col />
+ <col />
+ </colgroup>
+ <thead>
+ <tr>
+ <th>
+ <p>
+ Expression
+ </p>
+ </th>
+ <th>
+ <p>
+ Operation (Returns Old Value)
+ </p>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_assign</span><span class="special">(</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">c1</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">i</span> <span class="special">+=</span>
+ <span class="identifier">c1</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">decrement</span><span class="special">(</span>
+ <span class="identifier">i</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="special">--</span><span class="identifier">i</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">divide_assign</span><span class="special">(</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">c1</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">i</span> <span class="special">/=</span>
+ <span class="identifier">c1</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">increment</span><span class="special">(</span>
+ <span class="identifier">i</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="special">++</span><span class="identifier">i</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">multiply_assign</span><span class="special">(</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">c1</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">i</span> <span class="special">*=</span>
+ <span class="identifier">c1</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">subtract_assign</span><span class="special">(</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">c1</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">i</span> <span class="special">-=</span>
+ <span class="identifier">c1</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <br class="table-break" />
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_arithmetic_type.headers"></a>
+ <h6><a id="id458673"></a>
+ Headers
+ </h6>
+ <p>
+
+</p>
+ <div class="programlisting">
+ <div class="box-outer-wrapper">
+ <div class="box-top-left"></div>
+ <div class="box-top-right"></div>
+ <div class="box-top"></div>
+ <div class="box-inner-wrapper">
+ <div class="style-switcher-box" id="id458694">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'insert_style_selector',
+ 'id458694',
+ '../../../../../doc/style/html/syntax.xml',
+ '../../../../../doc/style/html'
+ );
+ //--></script>
+</div>
+ <pre>
+<span class="comment">// Brings in all interlocked operations.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="comment">// Only forward declarations.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="comment">// increment headers.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">increment</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">increment</span><span class="special">/</span><span class="identifier">increment</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">increment</span><span class="special">/</span><span class="identifier">increment_acquire</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">increment</span><span class="special">/</span><span class="identifier">increment_release</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">increment</span><span class="special">/</span><span class="identifier">increment_acq_rel</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">increment</span><span class="special">/</span><span class="identifier">increment_unordered</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+
+<span class="comment">// Forward declarations.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">increment_fwd</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">increment</span><span class="special">/</span><span class="identifier">increment_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">/* etc. */</span>
+
+
+<span class="comment">// decrement headers.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">decrement</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">decrement</span><span class="special">/</span><span class="identifier">decrement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">/* etc. */</span>
+
+<span class="comment">////////////////////////////////////////////////////////////////////////////
+</span><span class="comment">// Headers for the remaining operations follow the same pattern as above. //
+</span><span class="comment">////////////////////////////////////////////////////////////////////////////
+</span></pre>
+ </div>
+ <div class="box-bottom-left"></div>
+ <div class="box-bottom-right"></div>
+ <div class="box-bottom"></div>
+ </div>
+ </div>
+ <p>
+ </p>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="interlocked_basic_type.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../interlocked_concepts.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../../../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="interlocked_integer_type.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="footer">
+ <div id="footer-left">
+ <div id="copyright">
+ <p>Copyright © 2006 , 2007 Matthew Calabrese</p>
+ </div>
+ <div id="license">
+ <p>Distributed under the
+ Boost Software License, Version 1.0.
+ </p>
+ </div>
+ </div>
+ <div id="footer-right">
+ <div id="banners">
+ <p id="banner-xhtml">
+ XHTML 1.0
+ </p>
+ <p id="banner-css">
+ CSS
+ </p>
+ <p id="banner-sourceforge">
+ SourceForge
+ </p>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </body>
+</html>
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_basic_type.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_basic_type.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,400 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interlocked Basic Type</title><link rel="stylesheet" href="../../../../../doc/style/html/main.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.72.0" /><link rel="start" href="../../../index.html" title="Boost.Act" /><link rel="up" href="../interlocked_concepts.html" title="Interlocked Concepts" /><link rel="prev" href="interlocked_operation.html" title="Interlocked Operation" /><link rel="next" href="interlocked_arithmetic_type.html" title="Interlocked Arithmetic Type" /><script type="text/javascript" src="../../../../../doc/javascript/main.js"></script>
+ <script type="text/javascript" > <!--
+ boostscript.init( new Array(
+ boostscript.nested_links,
+ boostscript.style_switcher,
+ boostscript.common
+ ),
+ '../../../../../doc/javascript'
+ );
+ //--></script>
+
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'include_alternate_stylesheets',
+ '../../../../../doc/style/html/syntax.xml',
+ '../../../../../doc/style/html'
+ );
+ //--></script>
+<link rel="alternate stylesheet" type="text/css" title="Quickbook source" href="../../../../../doc/style/html/conversion/boostbook_to_quickbook.css" />
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'load_user_stylesheet' );
+ //--></script>
+</head>
+ <body>
+ <div id="heading">
+ <div id="heading-placard"></div>
+ <div class="heading-navigation-box">
+ <div class="nested-links-select-box" id="chapters_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'chapters_select_box',
+ '../../../../../doc/chapters.xml',
+ '../../../../../libs');
+ //--></script>
+</div>
+ <div class="nested-links-select-box" id="sections_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'sections_select_box',
+ '../../../sections.xml',
+ '../../.././');
+ //--></script>
+</div>
+ </div>
+ <div class="search-box">
+ <form id="cref" action="http://google.com/cse">
+ <div class="search-box-label"></div>
+ <div>
+ <input type="hidden" name="cref" value="http://tinyurl.com/33np8c" />
+ <input class="search-box" type="text" name="q" id="q" size="40" maxlength="255" alt="Search Text" />
+ </div>
+ </form>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="interlocked_operation.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../interlocked_concepts.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../../../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="interlocked_arithmetic_type.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="body">
+ <div id="body-inner">
+ <div id="content">
+ <div class="section">
+ <div class="titlepage">
+ <div>
+ <div>
+ <h4 class="title"><a id="boost_act.interlocked.interlocked_concepts.interlocked_basic_type"></a><a href="interlocked_basic_type.html" title="Interlocked Basic Type">Interlocked
+ Basic Type</a></h4>
+ </div>
+ </div>
+ </div>
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_basic_type.description"></a>
+ <h6><a id="id456117"></a>
+ Description
+ </h6>
+ <p>
+ An <code class="literal">Interlocked Basic Type</code> is a type whose instances
+ support thread-safe <code class="computeroutput"><span class="identifier">load</span></code>
+ and <code class="computeroutput"><span class="identifier">store</span></code> operations and
+ which are often used in the implementation of lock-free code. In the current
+ version of Boost.Act, only built-in types may be <code class="literal">Interlocked Basic
+ Types</code>, although this will likely change in future releases.
+ </p>
+ <div class="variablelist">
+ <p class="title">
+ <b>Notation</b>
+ </p>
+ <dl>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">I</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ An <code class="literal">Interlocked Basic Type</code>.
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">i</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ A value of type <code class="computeroutput"><span class="identifier">I</span><span class="special">&</span></code>.
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">C1</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ A type which is convertible to <code class="computeroutput"><span class="identifier">remove_cv</span><span class="special"><</span><span class="identifier">I</span><span class="special">>::</span><span class="identifier">type</span><span class="special">&</span></code>.
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">c1</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ A value of type <code class="computeroutput"><span class="identifier">C1</span> <span class="keyword">const</span><span class="special">&</span></code>.
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">IU</span>
+ </code>
+ </span>
+ </dt>
+ <dd><code class="computeroutput"><span class="identifier">remove_cv</span><span class="special"><</span><span class="identifier">I</span><span class="special">>::</span><span class="identifier">type</span></code>.
+ </dd>
+ </dl>
+ </div>
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_basic_type.expression_requirements"></a>
+ <h6><a id="id456403"></a>
+ <a href="interlocked_basic_type.html#boost_act.interlocked.interlocked_concepts.interlocked_basic_type.expression_requirements">Expression
+ Requirements</a>
+ </h6>
+ <p>
+ In order to be considered a valid <code class="literal">Interlocked Type</code>,
+ the type must be <span class="emphasis"><em>default constructible</em></span>, <span class="emphasis"><em>copy-constructible</em></span>,
+ and <span class="emphasis"><em>copy-assignable</em></span>. These operations are not interlocked
+ operations and do not guarantee a specific ordering of any kind.
+ </p>
+ <div class="note">
+ <div class="box-outer-wrapper">
+ <div class="box-top-left"></div>
+ <div class="box-top-right"></div>
+ <div class="box-top"></div>
+ <div class="box-inner-wrapper">
+ <div class="admonition-graphic">
+ <div class="admonition-icon">
+ <div class="note-icon"></div>
+ </div>
+ </div>
+ <div class="admonition-body">
+ <div class="admonition-title">Note</div>
+ <div class="admonition-content">
+ <p>
+ </p>
+ <p>
+ Each of the following operations is a valid <a href="interlocked_operation.html" title="Interlocked Operation">
+ <code class="literal">Interlocked Operation</code></a>, therefore user-specified
+ semantics may be applied. In addition to this, all operations listed
+ below have a return type of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_cv</span><span class="special"><</span><span class="identifier">IV</span><span class="special">>::</span><span class="identifier">type</span></code>
+ and yield the value of target object prior to the operation being applied.
+ Allowed user-specified semantics for these operations are <code class="computeroutput"><span class="identifier">acquire</span></code>, <code class="computeroutput"><span class="identifier">release</span></code>,
+ <code class="computeroutput"><span class="identifier">acq_rel</span></code>, <code class="computeroutput"><span class="identifier">unordered</span></code>, and <code class="computeroutput"><span class="identifier">default_</span></code>.
+ If no semantics are explicitly specified or if <code class="computeroutput"><span class="identifier">default_</span></code>
+ semantics are specified, then the operation is performed with <code class="computeroutput"><span class="identifier">acq_rel</span></code> semantics.
+ </p>
+ <p>
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="box-bottom-left"></div>
+ <div class="box-bottom-right"></div>
+ <div class="box-bottom"></div>
+ </div>
+ </div>
+ <div class="table">
+ <a id="id456601"></a>
+ <p class="title">
+ <b>Table 4. Interlocked Type Requirements</b>
+ </p>
+ <div class="table-contents">
+ <table class="table" summary="Interlocked Type Requirements">
+ <colgroup>
+ <col />
+ <col />
+ <col />
+ </colgroup>
+ <thead>
+ <tr>
+ <th>
+ <p>
+ Expression
+ </p>
+ </th>
+ <th>
+ <p>
+ Return Type
+ </p>
+ </th>
+ <th>
+ <p>
+ Pre/Post-Condition
+ </p>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">load</span><span class="special">(</span>
+ <span class="identifier">i</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">IU</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ Returns the value stored in <code class="computeroutput"><span class="identifier">i</span></code>.
+ This function is an <a href="interlocked_operation.html" title="Interlocked Operation">
+ <code class="literal">Interlocked Operation</code></a> and defaults to
+ <code class="computeroutput"><span class="identifier">acquire</span></code> semantics.
+ Allowable semantics for this operation are <code class="computeroutput"><span class="identifier">unordered</span></code>
+ and <code class="computeroutput"><span class="identifier">acquire</span></code>.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">store</span><span class="special">(</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">c1</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ Stores the value of <code class="computeroutput"><span class="identifier">c1</span></code>
+ to object <code class="computeroutput"><span class="identifier">i</span></code>. This
+ function is an <a href="interlocked_operation.html" title="Interlocked Operation">
+ <code class="literal">Interlocked Operation</code></a> and defaults to
+ <code class="computeroutput"><span class="identifier">release</span></code> semantics.
+ Allowable semantics for this operation are <code class="computeroutput"><span class="identifier">unordered</span></code>
+ and <code class="computeroutput"><span class="identifier">release</span></code>.
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <br class="table-break" />
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_basic_type.headers"></a>
+ <h6><a id="id456927"></a>
+ Headers
+ </h6>
+ <p>
+
+</p>
+ <div class="programlisting">
+ <div class="box-outer-wrapper">
+ <div class="box-top-left"></div>
+ <div class="box-top-right"></div>
+ <div class="box-top"></div>
+ <div class="box-inner-wrapper">
+ <div class="style-switcher-box" id="id456949">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'insert_style_selector',
+ 'id456949',
+ '../../../../../doc/style/html/syntax.xml',
+ '../../../../../doc/style/html'
+ );
+ //--></script>
+</div>
+ <pre>
+<span class="comment">// Brings in all interlocked operations.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="comment">// Only forward declarations.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="comment">// load headers.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">load</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">load</span><span class="special">/</span><span class="identifier">load</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">load</span><span class="special">/</span><span class="identifier">load_acquire</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">load</span><span class="special">/</span><span class="identifier">load_unordered</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="comment">// Forward declarations.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">load_fwd</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">load</span><span class="special">/</span><span class="identifier">load_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">/* etc. */</span>
+
+
+<span class="comment">// store headers.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">store</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">store</span><span class="special">/</span><span class="identifier">store</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">/* etc. */</span>
+</pre>
+ </div>
+ <div class="box-bottom-left"></div>
+ <div class="box-bottom-right"></div>
+ <div class="box-bottom"></div>
+ </div>
+ </div>
+ <p>
+ </p>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="interlocked_operation.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../interlocked_concepts.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../../../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="interlocked_arithmetic_type.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="footer">
+ <div id="footer-left">
+ <div id="copyright">
+ <p>Copyright © 2006 , 2007 Matthew Calabrese</p>
+ </div>
+ <div id="license">
+ <p>Distributed under the
+ Boost Software License, Version 1.0.
+ </p>
+ </div>
+ </div>
+ <div id="footer-right">
+ <div id="banners">
+ <p id="banner-xhtml">
+ XHTML 1.0
+ </p>
+ <p id="banner-css">
+ CSS
+ </p>
+ <p id="banner-sourceforge">
+ SourceForge
+ </p>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </body>
+</html>
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_integer_type.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_integer_type.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,458 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interlocked Integer Type</title><link rel="stylesheet" href="../../../../../doc/style/html/main.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.72.0" /><link rel="start" href="../../../index.html" title="Boost.Act" /><link rel="up" href="../interlocked_concepts.html" title="Interlocked Concepts" /><link rel="prev" href="interlocked_arithmetic_type.html" title="Interlocked Arithmetic Type" /><link rel="next" href="../../rationale.html" title="Rationale" /><script type="text/javascript" src="../../../../../doc/javascript/main.js"></script>
+ <script type="text/javascript" > <!--
+ boostscript.init( new Array(
+ boostscript.nested_links,
+ boostscript.style_switcher,
+ boostscript.common
+ ),
+ '../../../../../doc/javascript'
+ );
+ //--></script>
+
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'include_alternate_stylesheets',
+ '../../../../../doc/style/html/syntax.xml',
+ '../../../../../doc/style/html'
+ );
+ //--></script>
+<link rel="alternate stylesheet" type="text/css" title="Quickbook source" href="../../../../../doc/style/html/conversion/boostbook_to_quickbook.css" />
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'load_user_stylesheet' );
+ //--></script>
+</head>
+ <body>
+ <div id="heading">
+ <div id="heading-placard"></div>
+ <div class="heading-navigation-box">
+ <div class="nested-links-select-box" id="chapters_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'chapters_select_box',
+ '../../../../../doc/chapters.xml',
+ '../../../../../libs');
+ //--></script>
+</div>
+ <div class="nested-links-select-box" id="sections_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'sections_select_box',
+ '../../../sections.xml',
+ '../../.././');
+ //--></script>
+</div>
+ </div>
+ <div class="search-box">
+ <form id="cref" action="http://google.com/cse">
+ <div class="search-box-label"></div>
+ <div>
+ <input type="hidden" name="cref" value="http://tinyurl.com/33np8c" />
+ <input class="search-box" type="text" name="q" id="q" size="40" maxlength="255" alt="Search Text" />
+ </div>
+ </form>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="interlocked_arithmetic_type.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../interlocked_concepts.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../../../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="../../rationale.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="body">
+ <div id="body-inner">
+ <div id="content">
+ <div class="section">
+ <div class="titlepage">
+ <div>
+ <div>
+ <h4 class="title"><a id="boost_act.interlocked.interlocked_concepts.interlocked_integer_type"></a><a href="interlocked_integer_type.html" title="Interlocked Integer Type">Interlocked
+ Integer Type</a></h4>
+ </div>
+ </div>
+ </div>
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_integer_type.description"></a>
+ <h6><a id="id459597"></a>
+ Description
+ </h6>
+ <p>
+ An <code class="literal">Interlocked Integer Type</code> is an <a href="interlocked_arithmetic_type.html" title="Interlocked Arithmetic Type">
+ <code class="literal">Interlocked Arithmetic Type</code></a> which supports common
+ integer operations.
+ </p>
+ <div class="variablelist">
+ <p class="title">
+ <b>Notation</b>
+ </p>
+ <dl>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">I</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ An <code class="literal">Interlocked Integer Type</code>.
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">i</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ A value of type <code class="computeroutput"><span class="identifier">I</span></code>.
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">C1</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ A type which is convertible to <code class="computeroutput"><span class="identifier">remove_cv</span><span class="special"><</span><span class="identifier">I</span><span class="special">>::</span><span class="identifier">type</span><span class="special">&</span></code>.
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">c1</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ A value of type <code class="computeroutput"><span class="identifier">C1</span> <span class="keyword">const</span><span class="special">&</span></code>.
+ </dd>
+ </dl>
+ </div>
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_integer_type.refinement_of"></a>
+ <h6><a id="id459808"></a>
+ <a href="interlocked_integer_type.html#boost_act.interlocked.interlocked_concepts.interlocked_integer_type.refinement_of">Refinement
+ of</a>
+ </h6>
+ <p>
+ <a href="interlocked_arithmetic_type.html" title="Interlocked Arithmetic Type">
+ <code class="literal">Interlocked Arithmetic Type</code></a>
+ </p>
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_integer_type.expression_requirements"></a>
+ <h6><a id="id459856"></a>
+ <a href="interlocked_integer_type.html#boost_act.interlocked.interlocked_concepts.interlocked_integer_type.expression_requirements">Expression
+ Requirements</a>
+ </h6>
+ <p>
+ In order to be considered a valid <code class="literal">Interlocked Integer Type</code>,
+ given the variable definitions below, the following expressions must be
+ well-formed and have the indicated effects, in addition to those requirements
+ of <a href="interlocked_arithmetic_type.html" title="Interlocked Arithmetic Type">
+ <code class="literal">Interlocked Arithmetic Type</code></a>. <code class="literal">Interlocked
+ Integer Types</code> also support all operations specified in the C++
+ standard for integer types. Such operations do not imply memory barriers
+ of any kind.
+ </p>
+ <div class="note">
+ <div class="box-outer-wrapper">
+ <div class="box-top-left"></div>
+ <div class="box-top-right"></div>
+ <div class="box-top"></div>
+ <div class="box-inner-wrapper">
+ <div class="admonition-graphic">
+ <div class="admonition-icon">
+ <div class="note-icon"></div>
+ </div>
+ </div>
+ <div class="admonition-body">
+ <div class="admonition-title">Note</div>
+ <div class="admonition-content">
+ <p>
+ </p>
+ <p>
+ Each of the following operations is a valid <a href="interlocked_operation.html" title="Interlocked Operation">
+ <code class="literal">Interlocked Operation</code></a>, therefore user-specified
+ semantics may be applied. In addition to this, all operations listed
+ below have a return type of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_cv</span><span class="special"><</span><span class="identifier">IV</span><span class="special">>::</span><span class="identifier">type</span></code>
+ and yield the value of target object prior to the operation being applied.
+ Allowed user-specified semantics for these operations are <code class="computeroutput"><span class="identifier">acquire</span></code>, <code class="computeroutput"><span class="identifier">release</span></code>,
+ <code class="computeroutput"><span class="identifier">acq_rel</span></code>, <code class="computeroutput"><span class="identifier">unordered</span></code>, and <code class="computeroutput"><span class="identifier">default_</span></code>.
+ If no semantics are explicitly specified or if <code class="computeroutput"><span class="identifier">default_</span></code>
+ semantics are specified, then the operation is performed with <code class="computeroutput"><span class="identifier">acq_rel</span></code> semantics.
+ </p>
+ <p>
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="box-bottom-left"></div>
+ <div class="box-bottom-right"></div>
+ <div class="box-bottom"></div>
+ </div>
+ </div>
+ <div class="table">
+ <a id="id460065"></a>
+ <p class="title">
+ <b>Table 6. Interlocked Integer Type Requirements</b>
+ </p>
+ <div class="table-contents">
+ <table class="table" summary="Interlocked Integer Type Requirements">
+ <colgroup>
+ <col />
+ <col />
+ </colgroup>
+ <thead>
+ <tr>
+ <th>
+ <p>
+ Expression
+ </p>
+ </th>
+ <th>
+ <p>
+ Operation (Returns Old Value)
+ </p>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">bitand_assign</span><span class="special">(</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">c1</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">i</span> <span class="special">&=</span>
+ <span class="identifier">c1</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">bitor_assign</span><span class="special">(</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">c1</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">i</span> <span class="special">|=</span>
+ <span class="identifier">c1</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">compl_assign</span><span class="special">(</span>
+ <span class="identifier">i</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">i</span> <span class="special">=</span>
+ <span class="special">~</span><span class="identifier">i</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lshift_assign</span><span class="special">(</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">c1</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">i</span> <span class="special"><<=</span>
+ <span class="identifier">c1</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">mod_assign</span><span class="special">(</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">c1</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">i</span> <span class="special">%=</span>
+ <span class="identifier">c1</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">rshift_assign</span><span class="special">(</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">c1</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">i</span> <span class="special">>>=</span>
+ <span class="identifier">c1</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">xor_assign</span><span class="special">(</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">c1</span> <span class="special">)</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">i</span> <span class="special">^=</span>
+ <span class="identifier">c1</span><span class="special">;</span></code>
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <br class="table-break" />
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_integer_type.headers"></a>
+ <h6><a id="id460702"></a>
+ Headers
+ </h6>
+ <p>
+
+</p>
+ <div class="programlisting">
+ <div class="box-outer-wrapper">
+ <div class="box-top-left"></div>
+ <div class="box-top-right"></div>
+ <div class="box-top"></div>
+ <div class="box-inner-wrapper">
+ <div class="style-switcher-box" id="id460724">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'insert_style_selector',
+ 'id460724',
+ '../../../../../doc/style/html/syntax.xml',
+ '../../../../../doc/style/html'
+ );
+ //--></script>
+</div>
+ <pre>
+<span class="comment">// Brings in all interlocked operations.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="comment">// Only forward declarations.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="comment">// bitand_assign headers.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">bitand_assign</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">bitand_assign</span><span class="special">/</span><span class="identifier">bitand_assign</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">bitand_assign</span><span class="special">/</span><span class="identifier">bitand_assign_acquire</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">bitand_assign</span><span class="special">/</span><span class="identifier">bitand_assign_release</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">bitand_assign</span><span class="special">/</span><span class="identifier">bitand_assign_acq_rel</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">bitand_assign</span><span class="special">/</span><span class="identifier">bitand_assign_unordered</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+
+<span class="comment">// Forward declarations.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">bitand_assign_fwd</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">bitand_assign</span><span class="special">/</span><span class="identifier">bitand_assign_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">/* etc. */</span>
+
+
+<span class="comment">// bitor_assign headers.
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">bitor_assign</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">act</span><span class="special">/</span><span class="identifier">interlocked</span><span class="special">/</span><span class="identifier">bitor_assign</span><span class="special">/</span><span class="identifier">bitor_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">/* etc. */</span>
+
+<span class="comment">////////////////////////////////////////////////////////////////////////////
+</span><span class="comment">// Headers for the remaining operations follow the same pattern as above. //
+</span><span class="comment">////////////////////////////////////////////////////////////////////////////
+</span></pre>
+ </div>
+ <div class="box-bottom-left"></div>
+ <div class="box-bottom-right"></div>
+ <div class="box-bottom"></div>
+ </div>
+ </div>
+ <p>
+ </p>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="interlocked_arithmetic_type.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../interlocked_concepts.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../../../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="../../rationale.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="footer">
+ <div id="footer-left">
+ <div id="copyright">
+ <p>Copyright © 2006 , 2007 Matthew Calabrese</p>
+ </div>
+ <div id="license">
+ <p>Distributed under the
+ Boost Software License, Version 1.0.
+ </p>
+ </div>
+ </div>
+ <div id="footer-right">
+ <div id="banners">
+ <p id="banner-xhtml">
+ XHTML 1.0
+ </p>
+ <p id="banner-css">
+ CSS
+ </p>
+ <p id="banner-sourceforge">
+ SourceForge
+ </p>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </body>
+</html>
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_operation.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked/interlocked_concepts/interlocked_operation.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interlocked Operation</title><link rel="stylesheet" href="../../../../../doc/style/html/main.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.72.0" /><link rel="start" href="../../../index.html" title="Boost.Act" /><link rel="up" href="../interlocked_concepts.html" title="Interlocked Concepts" /><link rel="prev" href="../interlocked_concepts.html" title="Interlocked Concepts" /><link rel="next" href="interlocked_basic_type.html" title="Interlocked Basic Type" /><script type="text/javascript" src="../../../../../doc/javascript/main.js"></script>
+ <script type="text/javascript" > <!--
+ boostscript.init( new Array(
+ boostscript.nested_links,
+ boostscript.style_switcher,
+ boostscript.common
+ ),
+ '../../../../../doc/javascript'
+ );
+ //--></script>
+
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'include_alternate_stylesheets',
+ '../../../../../doc/style/html/syntax.xml',
+ '../../../../../doc/style/html'
+ );
+ //--></script>
+<link rel="alternate stylesheet" type="text/css" title="Quickbook source" href="../../../../../doc/style/html/conversion/boostbook_to_quickbook.css" />
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.style_switcher, 'load_user_stylesheet' );
+ //--></script>
+</head>
+ <body>
+ <div id="heading">
+ <div id="heading-placard"></div>
+ <div class="heading-navigation-box">
+ <div class="nested-links-select-box" id="chapters_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'chapters_select_box',
+ '../../../../../doc/chapters.xml',
+ '../../../../../libs');
+ //--></script>
+</div>
+ <div class="nested-links-select-box" id="sections_select_box">
+ <script type="text/javascript" > <!--
+ boostscript.call( boostscript.nested_links, 'select_box',
+ 'sections_select_box',
+ '../../../sections.xml',
+ '../../.././');
+ //--></script>
+</div>
+ </div>
+ <div class="search-box">
+ <form id="cref" action="http://google.com/cse">
+ <div class="search-box-label"></div>
+ <div>
+ <input type="hidden" name="cref" value="http://tinyurl.com/33np8c" />
+ <input class="search-box" type="text" name="q" id="q" size="40" maxlength="255" alt="Search Text" />
+ </div>
+ </form>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="../interlocked_concepts.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../interlocked_concepts.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../../../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="interlocked_basic_type.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="body">
+ <div id="body-inner">
+ <div id="content">
+ <div class="section">
+ <div class="titlepage">
+ <div>
+ <div>
+ <h4 class="title"><a id="boost_act.interlocked.interlocked_concepts.interlocked_operation"></a><a href="interlocked_operation.html" title="Interlocked Operation">Interlocked
+ Operation</a></h4>
+ </div>
+ </div>
+ </div>
+ <p>
+ An <code class="literal">Interlocked Operation</code> is a function which provides
+ guarantees concerning order and visibility of read and write operations
+ with respect to multiple threads, often with semantics which may be specified
+ by users at the call site.
+ </p>
+ <p>
+ In order to be considered a valid <code class="literal">Interlocked Operation</code>,
+ given the variable definitions below, the following expressions must be
+ well-formed and have the indicated effects.
+ </p>
+ <div class="variablelist">
+ <p class="title">
+ <b>Notation</b>
+ </p>
+ <dl>
+ <dt>
+ <span class="term">
+ <em class="replaceable"><code>
+ name
+ </code></em>
+ </span>
+ </dt>
+ <dd>
+ An <code class="literal">Interlocked Operation</code>.
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="computeroutput">
+ <span class="identifier">S</span>
+ </code>
+ </span>
+ </dt>
+ <dd>
+ A <a href="interlocked_operation.html#boost_act.interlocked.interlocked_concepts.interlocked_operation.semantic_type">
+ <code class="literal">Semantic Type</code></a>.
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="replaceable"><code>
+ args
+ </code></em>
+ </span>
+ </dt>
+ <dd>
+ The argument list (if any) for the <code class="literal">Interlocked Operation</code>.
+ </dd>
+ </dl>
+ </div>
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_operation.expression_requirements"></a>
+ <h6><a id="id455580"></a>
+ <a href="interlocked_operation.html#boost_act.interlocked.interlocked_concepts.interlocked_operation.expression_requirements">Expression
+ Requirements</a>
+ </h6>
+ <div class="table">
+ <a id="id455599"></a>
+ <p class="title">
+ <b>Table 2. Interlocked Operation Requirements</b>
+ </p>
+ <div class="table-contents">
+ <table class="table" summary="Interlocked Operation Requirements">
+ <colgroup>
+ <col />
+ <col />
+ </colgroup>
+ <thead>
+ <tr>
+ <th>
+ <p>
+ Expression
+ </p>
+ </th>
+ <th>
+ <p>
+ Pre/Post-Condition
+ </p>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput">name(args) </code>
+ </p>
+ </td>
+ <td>
+ <p>
+ Performs the operation with the default semantics as specified for
+ that operation.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput">name<S>(args)</code>
+ </p>
+ </td>
+ <td>
+ <p>
+ Performs the operation with the specified semantics. <span class="emphasis"><em>Note:
+ Not all <code class="literal">Interlocked Operations</code> support every
+ <a href="interlocked_operation.html#boost_act.interlocked.interlocked_concepts.interlocked_operation.semantic_type">
+ <code class="literal">Semantic Type</code></a>. Refer to documentation for
+ the corresponding operation for exactly which semantics are supported
+ for that operation. All <code class="literal">Interlocked Operations</code>
+ must support the <code class="computeroutput"><span class="identifier">default_</span></code>
+ <a href="interlocked_operation.html#boost_act.interlocked.interlocked_concepts.interlocked_operation.semantic_type">
+ <code class="literal">Semantic Type</code></a>. --end note</em></span>
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <br class="table-break" />
+ <a id="boost_act.interlocked.interlocked_concepts.interlocked_operation.semantic_type"></a>
+ <h6><a id="id455767"></a>
+ <a href="interlocked_operation.html#boost_act.interlocked.interlocked_concepts.interlocked_operation.semantic_type">Semantic
+ Type</a>
+ </h6>
+ <p>
+ While all <code class="literal">Interlocked Operations</code> specify certain guarantees
+ by default, these may often be toggled to make an operation's ordering
+ more or less constrained by passing a <code class="literal">Semantic Type</code>
+ as an explicit template argument to the corresponding template. Not all
+ <code class="literal">Interlocked Operations</code> support all <code class="literal">Semantic
+ Types</code>.
+ </p>
+ <div class="note">
+ <div class="box-outer-wrapper">
+ <div class="box-top-left"></div>
+ <div class="box-top-right"></div>
+ <div class="box-top"></div>
+ <div class="box-inner-wrapper">
+ <div class="admonition-graphic">
+ <div class="admonition-icon">
+ <div class="note-icon"></div>
+ </div>
+ </div>
+ <div class="admonition-body">
+ <div class="admonition-title">Note</div>
+ <div class="admonition-content">
+ <p>
+ </p>
+ <p>
+ If you are unsure as to which semantics you should use for a given
+ situation, it is generally safest to use the default semantics of the
+ corresponding <code class="literal">Interlocked Operation</code>. If efficiency
+ is important for your application, you should prefer to use the least-restrictive
+ semantics that you can without breaking allowable ordering of visibility
+ between threads.
+ </p>
+ <p>
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="box-bottom-left"></div>
+ <div class="box-bottom-right"></div>
+ <div class="box-bottom"></div>
+ </div>
+ </div>
+ <div class="table">
+ <a id="id455834"></a>
+ <p class="title">
+ <b>Table 3. Semantic Types</b>
+ </p>
+ <div class="table-contents">
+ <table class="table" summary="Semantic Types">
+ <colgroup>
+ <col />
+ <col />
+ </colgroup>
+ <thead>
+ <tr>
+ <th>
+ <p>
+ Type
+ </p>
+ </th>
+ <th>
+ <p>
+ Ordering Guarantee
+ </p>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unordered</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ No ordering guarantee.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">acquire</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ The operation is made visible before all subsequent instructions.
+ <code class="computeroutput"><span class="identifier">acquire</span></code> semantics
+ are generally used for read or read-write operations.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">release</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ The operation is made visible after all prior instructions. <code class="computeroutput"><span class="identifier">release</span></code> semantics are generally
+ used for write or read-write operations.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">acq_rel</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ Combines the ordering guarantees of both <code class="computeroutput"><span class="identifier">acquire</span></code>
+ and <code class="computeroutput"><span class="identifier">release</span></code>. <code class="computeroutput"><span class="identifier">acq_rel</span></code> semantics are generally
+ used for read-write operations only.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <code class="computeroutput"><span class="identifier">default_</span></code>
+ </p>
+ </td>
+ <td>
+ <p>
+ Uses the default ordering guarantees as specified by the corresponding
+ <code class="literal">Interlocked Operation</code>.
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <br class="table-break" />
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div class="spirit-nav">
+ <div class="spirit-nav-icon">
+ <a accesskey="p" href="../interlocked_concepts.html">
+ <div class="prev-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="u" href="../interlocked_concepts.html">
+ <div class="up-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="h" href="../../../index.html">
+ <div class="home-icon"></div>
+ </a>
+ </div>
+ <div class="spirit-nav-icon">
+ <a accesskey="n" href="interlocked_basic_type.html">
+ <div class="next-icon"></div>
+ </a>
+ </div>
+ </div>
+ <div id="footer">
+ <div id="footer-left">
+ <div id="copyright">
+ <p>Copyright © 2006 , 2007 Matthew Calabrese</p>
+ </div>
+ <div id="license">
+ <p>Distributed under the
+ Boost Software License, Version 1.0.
+ </p>
+ </div>
+ </div>
+ <div id="footer-right">
+ <div id="banners">
+ <p id="banner-xhtml">
+ XHTML 1.0
+ </p>
+ <p id="banner-css">
+ CSS
+ </p>
+ <p id="banner-sourceforge">
+ SourceForge
+ </p>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </body>
+</html>
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked_integer.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked_integer.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked_integer.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -108,7 +108,7 @@
</div>
</div>
<a id="boost_act.interlocked_integer.header"></a>
- <h4><a id="id465202"></a>
+ <h4><a id="id465200"></a>
<a href="interlocked_integer.html#boost_act.interlocked_integer.header">Header</a>
</h4>
<div class="programlisting">
@@ -117,10 +117,10 @@
<div class="box-top-right"></div>
<div class="box-top"></div>
<div class="box-inner-wrapper">
- <div class="style-switcher-box" id="id465219">
+ <div class="style-switcher-box" id="id465217">
<script type="text/javascript" > <!--
boostscript.call( boostscript.style_switcher, 'insert_style_selector',
- 'id465219',
+ 'id465217',
'../../../doc/style/html/syntax.xml',
'../../../doc/style/html'
);
@@ -141,7 +141,7 @@
</div>
</div>
<a id="boost_act.interlocked_integer.description"></a>
- <h4><a id="id465454"></a>
+ <h4><a id="id465452"></a>
<a href="interlocked_integer.html#boost_act.interlocked_integer.description">Description</a>
</h4>
<p>
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked_integer/integer_typedefs.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked_integer/integer_typedefs.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/interlocked_integer/integer_typedefs.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -89,7 +89,7 @@
</div>
</div>
<a id="boost_act.interlocked_integer.integer_typedefs.header"></a>
- <h5><a id="id465570"></a>
+ <h5><a id="id465568"></a>
<a href="integer_typedefs.html#boost_act.interlocked_integer.integer_typedefs.header">Header</a>
</h5>
<div class="programlisting">
@@ -98,10 +98,10 @@
<div class="box-top-right"></div>
<div class="box-top"></div>
<div class="box-inner-wrapper">
- <div class="style-switcher-box" id="id465588">
+ <div class="style-switcher-box" id="id465587">
<script type="text/javascript" > <!--
boostscript.call( boostscript.style_switcher, 'insert_style_selector',
- 'id465588',
+ 'id465587',
'../../../../doc/style/html/syntax.xml',
'../../../../doc/style/html'
);
@@ -117,7 +117,7 @@
</div>
</div>
<a id="boost_act.interlocked_integer.integer_typedefs.exact_width_integer_types"></a>
- <h5><a id="id465679"></a>
+ <h5><a id="id465677"></a>
<a href="integer_typedefs.html#boost_act.interlocked_integer.integer_typedefs.exact_width_integer_types">Exact-Width
Integer Types</a>
</h5>
@@ -137,7 +137,7 @@
to built-in integer types. ]
</p>
<a id="boost_act.interlocked_integer.integer_typedefs.minimum_width_integer_types"></a>
- <h5><a id="id465739"></a>
+ <h5><a id="id465737"></a>
<a href="integer_typedefs.html#boost_act.interlocked_integer.integer_typedefs.minimum_width_integer_types">Minimum-Width
Integer Types</a>
</h5>
@@ -180,7 +180,7 @@
All other minimum-width integer types are optional.
</p>
<a id="boost_act.interlocked_integer.integer_typedefs.fastest_minimum_width_integer_types"></a>
- <h5><a id="id465833"></a>
+ <h5><a id="id465831"></a>
<a href="integer_typedefs.html#boost_act.interlocked_integer.integer_typedefs.fastest_minimum_width_integer_types">Fastest
Minimum-Width Integer Types</a>
</h5>
@@ -224,7 +224,7 @@
All other fastest minimum-width integer types are optional.
</p>
<a id="boost_act.interlocked_integer.integer_typedefs.greatest_width_integer_types"></a>
- <h5><a id="id465934"></a>
+ <h5><a id="id465932"></a>
<a href="integer_typedefs.html#boost_act.interlocked_integer.integer_typedefs.greatest_width_integer_types">Greatest-Width
Integer Types</a>
</h5>
@@ -242,7 +242,7 @@
These types are required.
</p>
<a id="boost_act.interlocked_integer.integer_typedefs.miscellaneous_integer_types"></a>
- <h5><a id="id466009"></a>
+ <h5><a id="id466007"></a>
<a href="integer_typedefs.html#boost_act.interlocked_integer.integer_typedefs.miscellaneous_integer_types">Miscellaneous
Integer Types</a>
</h5>
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/introduction.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/introduction.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/introduction.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -119,12 +119,12 @@
library and to allow users to be able to portably and efficiently implement
their own shared-memory datastructures and algorithms, portable low-level interaction
must be made both possible and efficient. In <code class="literal">Boost.Act</code>,
- this is accomplished through the use of the low-level abstraction of an Interlocked Type
,
- which are types that support both thread-unsafe and thread-safe operations
- with semantics specified by the user at the call-site.
+ this is accomplished through the use of the low-level abstraction of an <a href="../"> <code class="literal">Interlocked
+ Type</code></a>, which are types that support both thread-unsafe and
+ thread-safe operations with semantics specified by the user at the call-site.
</p>
<a id="boost_act.introduction.polymorphic_algorithms"></a>
- <h4><a id="id388783"></a>
+ <h4><a id="id388786"></a>
<a href="introduction.html#boost_act.introduction.polymorphic_algorithms">Polymorphic Algorithms</a>
</h4>
<p>
@@ -146,7 +146,7 @@
of the creation of user-defined polymorphic algorithms.
</p>
<a id="boost_act.introduction.algorithm_models"></a>
- <h4><a id="id388832"></a>
+ <h4><a id="id388833"></a>
<a href="introduction.html#boost_act.introduction.algorithm_models">Algorithm Models</a>
</h4>
<p>
@@ -159,7 +159,7 @@
library.
</p>
<a id="boost_act.introduction.actions"></a>
- <h4><a id="id388857"></a>
+ <h4><a id="id388858"></a>
<a href="introduction.html#boost_act.introduction.actions">Actions</a>
</h4>
<p>
@@ -178,7 +178,7 @@
and which execute in the same thread as the original call.
</p>
<a id="boost_act.introduction.active_objects"></a>
- <h4><a id="id390144"></a>
+ <h4><a id="id390126"></a>
<a href="introduction.html#boost_act.introduction.active_objects">Active Objects</a>
</h4>
<p>
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/rationale.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/rationale.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/boost_act/rationale.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
- <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Rationale</title><link rel="stylesheet" href="../../../doc/style/html/main.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.72.0" /><link rel="start" href="../index.html" title="Boost.Act" /><link rel="up" href="../index.html" title="Boost.Act" /><link rel="prev" href="interlocked_integer/integer_typedefs.html" title="Integer Typedefs" /><link rel="next" href="rationale/policy_based_design.html" title="Policy-Based Design" /><script type="text/javascript" src="../../../doc/javascript/main.js"></script>
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Rationale</title><link rel="stylesheet" href="../../../doc/style/html/main.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.72.0" /><link rel="start" href="../index.html" title="Boost.Act" /><link rel="up" href="../index.html" title="Boost.Act" /><link rel="prev" href="interlocked/interlocked_concepts/interlocked_integer_type.html" title="Interlocked Integer Type" /><script type="text/javascript" src="../../../doc/javascript/main.js"></script>
<script type="text/javascript" > <!--
boostscript.init( new Array(
boostscript.nested_links,
@@ -56,7 +56,7 @@
</div>
<div class="spirit-nav">
<div class="spirit-nav-icon">
- <a accesskey="p" href="interlocked_integer/integer_typedefs.html">
+ <a accesskey="p" href="interlocked/interlocked_concepts/interlocked_integer_type.html">
<div class="prev-icon"></div>
</a>
</div>
@@ -70,11 +70,6 @@
<div class="home-icon"></div>
</a>
</div>
- <div class="spirit-nav-icon">
- <a accesskey="n" href="rationale/policy_based_design.html">
- <div class="next-icon"></div>
- </a>
- </div>
</div>
<div id="body">
<div id="body-inner">
@@ -87,37 +82,75 @@
</div>
</div>
</div>
- <div class="toc">
- <div class="box-outer-wrapper">
- <div class="box-top-left"></div>
- <div class="box-top-right"></div>
- <div class="box-top"></div>
- <div class="box-inner-wrapper">
- <dl>
- <dt>
- <span class="section">
- <a href="rationale/policy_based_design.html">Policy-Based
- Design</a>
- </span>
- </dt>
- <dt>
- <span class="section">
- <a href="rationale/actions_vs__futures.html">Actions vs.
- Futures</a>
- </span>
- </dt>
- </dl>
- </div>
- <div class="box-bottom-left"></div>
- <div class="box-bottom-right"></div>
- <div class="box-bottom"></div>
- </div>
- </div>
<p>
Boost.Act is a fairly large library and makes some controversial design decisions.
This section is provided to briefly describe the rationale behind some of these
decisions.
</p>
+ <a id="boost_act.rationale.policy_based_design"></a>
+ <h4><a id="id461627"></a>
+ Policy-Based Design
+ </h4>
+ <p>
+ Boost.Act offers programmers customizability through two kinds of policies
+ which control algorithm execution and active qualification implementation.
+ These policies allow one to adjust whether algorithms run in parallel when
+ possible or always serially, and allow one to adjust whether active types create
+ their own thread or operate in the master thread. Default policies used can
+ be overriden at a global level or individually at points of instantiation.
+ The reason this may be considered controversial is that some may argue that
+ the use of policies here adds needless complexity at little gain. <span class="emphasis"><em>In
+ short, why not just use the STL in cases where algorithms need to be run serially
+ and why not just not use active objects in places where you do not need your
+ object to exist in its own thread?</em></span>
+ </p>
+ <p>
+ The reasons for choosing policies stem mostly from the fact that they provide
+ an easy way to switch execution models for arbitrary amounts of code with very
+ few changes to the code using the library. Reasons one may wish to switch policies
+ at the call-site range from reasons of optimization to reasons of debugging.
+ In terms of optimization, using active objects and parallel algorithms may
+ have a negative impact on performance in single-core systems, therefore the
+ ability to toggle the execution model by merely changing the default policy
+ used allows a programmer to target both single-core and multicore processors
+ by simply rebuilding after changing the policy being used. In theory, using
+ policies which target single-core sytems can be optimized to the same code
+ as a project which avoided the abstraction entirely.
+ </p>
+ <p>
+ As an example of switching policies for debugging, single-threaded algorithms
+ can often be more simple to debug than multi-threaded algorithms. If a bug
+ is narrowed down to a single algorithm which runs in parallel, one may easily
+ switch execution for that call to be serial, making it much easier to step
+ through in order to find the problem. This also helps in figuring out if certain
+ unwanted behavior is being caused by multi-threading issues or if there is
+ a more simple logical problem which exists at a higher-level in the algorithm's
+ design.
+ </p>
+ <a id="boost_act.rationale.actions_vs__futures"></a>
+ <h4><a id="id461720"></a>
+ Actions vs. Futures
+ </h4>
+ <p>
+ Another fairly controversial design decision is the absence of futures, or
+ at least futures as they are commonly known. Rather than returning futures
+ from asynchronous function calls and function calls queued on active objects,
+ <code class="literal">actions</code> are yielded which represent the running function
+ and provide an indirect interface to an instance of the active qualified form
+ of the return type. This choice was made for a variety of reasons. First and
+ foremost, this allows a programmer to work with the results of such function
+ calls without losing concurrency by default, as functions upon them are queued
+ rather than performed immediately after implicitly or explicitly forcing the
+ function to complete. The traditional blocking form of futures, while can potentially
+ be implemented in such a way that is [slightly] more optimized for single-core
+ processors, implies an unnecessary loss of concurrency and becomes less efficient
+ if multiple cores are available. Still, the traditional behavior of futures
+ can be forced through actions by simply copying the active result to an active-unqualified
+ form of the result type using <code class="literal">inactive_value</code>, forcing a
+ wait for the function to complete. This gives actions of Boost.Act a superset
+ of the functionality provided by futures meaning that those who wish to use
+ actions in a future-like manner may do so.
+ </p>
</div>
</div>
<div class="clear"></div>
@@ -125,7 +158,7 @@
</div>
<div class="spirit-nav">
<div class="spirit-nav-icon">
- <a accesskey="p" href="interlocked_integer/integer_typedefs.html">
+ <a accesskey="p" href="interlocked/interlocked_concepts/interlocked_integer_type.html">
<div class="prev-icon"></div>
</a>
</div>
@@ -139,11 +172,6 @@
<div class="home-icon"></div>
</a>
</div>
- <div class="spirit-nav-icon">
- <a accesskey="n" href="rationale/policy_based_design.html">
- <div class="next-icon"></div>
- </a>
- </div>
</div>
<div id="footer">
<div id="footer-left">
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/index.html
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/index.html (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/html/index.html 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -124,34 +124,14 @@
</dt>
<dt>
<span class="section">
- Concepts
+ Interlocked
</span>
</dt>
<dd>
<dl>
<dt>
<span class="section">
- Consumer Concepts
- </span>
- </dt>
- <dd>
- <dl>
- <dt>
- <span class="section">
- Consumer
- </span>
- </dt>
- <dt>
- <span class="section">
- <a href="boost_act/concepts/consumer_concepts/consumer_policy.html">Consumer
- Policy</a>
- </span>
- </dt>
- </dl>
- </dd>
- <dt>
- <span class="section">
- <a href="boost_act/concepts/interlocked_concepts.html">Interlocked
+ <a href="boost_act/interlocked/interlocked_concepts.html">Interlocked
Concepts</a>
</span>
</dt>
@@ -159,65 +139,30 @@
<dl>
<dt>
<span class="section">
- <a href="boost_act/concepts/interlocked_concepts/interlocked_operation.html">Interlocked
+ <a href="boost_act/interlocked/interlocked_concepts/interlocked_operation.html">Interlocked
Operation</a>
</span>
</dt>
<dt>
<span class="section">
- <a href="boost_act/concepts/interlocked_concepts/interlocked_basic_type.html">Interlocked
+ <a href="boost_act/interlocked/interlocked_concepts/interlocked_basic_type.html">Interlocked
Basic Type</a>
</span>
</dt>
<dt>
<span class="section">
- <a href="boost_act/concepts/interlocked_concepts/interlocked_arithmetic_type.html">Interlocked
+ <a href="boost_act/interlocked/interlocked_concepts/interlocked_arithmetic_type.html">Interlocked
Arithmetic Type</a>
</span>
</dt>
<dt>
<span class="section">
- <a href="boost_act/concepts/interlocked_concepts/interlocked_integer_type.html">Interlocked
+ <a href="boost_act/interlocked/interlocked_concepts/interlocked_integer_type.html">Interlocked
Integer Type</a>
</span>
</dt>
</dl>
</dd>
- <dt>
- <span class="section">
- Queue Concepts
- </span>
- </dt>
- <dd>
- <dl>
- <dt>
- <span class="section">
- PC Queue
- </span>
- </dt>
- <dt>
- <span class="section">
- <a href="boost_act/concepts/queue_concepts/queue_policy.html">Queue
- Policy</a>
- </span>
- </dt>
- </dl>
- </dd>
- </dl>
- </dd>
- <dt>
- <span class="section">
- Interlocked Integer
- </span>
- </dt>
- <dd>
- <dl>
- <dt>
- <span class="section">
- <a href="boost_act/interlocked_integer/integer_typedefs.html">Integer
- Typedefs</a>
- </span>
- </dt>
</dl>
</dd>
<dt>
@@ -225,22 +170,6 @@
<a href="boost_act/rationale.html">Rationale</a>
</span>
</dt>
- <dd>
- <dl>
- <dt>
- <span class="section">
- <a href="boost_act/rationale/policy_based_design.html">Policy-Based
- Design</a>
- </span>
- </dt>
- <dt>
- <span class="section">
- <a href="boost_act/rationale/actions_vs__futures.html">Actions vs.
- Futures</a>
- </span>
- </dt>
- </dl>
- </dd>
</dl>
</div>
<div class="box-bottom-left"></div>
@@ -262,7 +191,7 @@
</div>
<div id="footer">
<div id="footer-left">
- <div id="revised">Revised: June 30, 2007 at 19:23:11 GMT</div>
+ <div id="revised">Revised: June 30, 2007 at 19:56:15 GMT</div>
<div id="copyright"></div>
<div id="license">
<p>Distributed under the
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked.qbk 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,5 @@
+[section Interlocked]
+
+[include interlocked/concepts.qbk]
+
+[endsect]
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts.qbk 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,8 @@
+[section Interlocked Concepts]
+
+[include concepts/interlocked_operation.qbk]
+[include concepts/interlocked_basic_type.qbk]
+[include concepts/interlocked_arithmetic_type.qbk]
+[include concepts/interlocked_integer_type.qbk]
+
+[endsect]
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_arithmetic_type.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_arithmetic_type.qbk 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,82 @@
+[section Interlocked Arithmetic Type]
+
+[heading Description]
+
+An [concept Interlocked Arithmetic Type] is an __interlocked_basic_type__ which
+supports common arithmetic operations.
+
+[variablelist Notation
+[[`I`] [An [concept Interlocked Arithmetic Type].] ]
+[[`i`] [A value of type `I`.] ]
+[[`C1`] [A type which is convertible to `remove_cv<I>::type&`.] ]
+[[`c1`] [A value of type `C1 const&`.] ]
+]
+
+[heading Refinement of]
+__interlocked_type__
+
+[heading Expression Requirements]
+
+In order to be considered a valid [concept Interlocked Arithmetic Type], given
+the variable definitions below, the following expressions must be well-formed
+and have the indicated effects, in addition to those requirements of
+__interlocked_basic_type__. [concept Interlocked Arithmetic Types] also support
+all operations specified in the C++ standard for arithmetic types. Such
+operations do not imply memory barriers of any kind.
+
+[note
+Each of the following operations is a valid __interlocked_operation__, therefore
+user-specified semantics may be applied. In addition to this, all operations
+listed below have a return type of `boost::remove_cv<IV>::type` and yield the
+value of target object prior to the operation being applied. Allowed
+user-specified semantics for these operations are `acquire`, `release`,
+`acq_rel`, `unordered`, and `default_`. If no semantics are explicitly specified
+or if `default_` semantics are specified, then the operation is performed with
+`acq_rel` semantics.
+]
+
+[table Interlocked Arithmetic Type Requirements
+[[Expression] [Operation (Returns Old Value)] ]
+[[`add_assign( i, c1 )`] [`i += c1;`] ]
+[[`decrement( i )`] [`--i;`] ]
+[[`divide_assign( i, c1 )`] [`i /= c1;`] ]
+[[`increment( i )`] [`++i;`] ]
+[[`multiply_assign( i, c1 )`] [`i *= c1;`] ]
+[[`subtract_assign( i, c1 )`] [`i -= c1;`] ]
+]
+
+[heading Headers]
+
+``
+ // Brings in all interlocked operations.
+ #include <boost/act/interlocked.hpp>
+
+ // Only forward declarations.
+ #include <boost/act/interlocked_fwd.hpp>
+
+ // increment headers.
+ #include <boost/act/interlocked/increment.hpp>
+ #include <boost/act/interlocked/increment/increment.hpp>
+ #include <boost/act/interlocked/increment/increment_acquire.hpp>
+ #include <boost/act/interlocked/increment/increment_release.hpp>
+ #include <boost/act/interlocked/increment/increment_acq_rel.hpp>
+ #include <boost/act/interlocked/increment/increment_unordered.hpp>
+
+
+ // Forward declarations.
+ #include <boost/act/interlocked/increment_fwd.hpp>
+ #include <boost/act/interlocked/increment/increment_fwd.hpp>
+ /* etc. */
+
+
+ // decrement headers.
+ #include <boost/act/interlocked/decrement.hpp>
+ #include <boost/act/interlocked/decrement/decrement.hpp>
+ /* etc. */
+
+ ////////////////////////////////////////////////////////////////////////////
+ // Headers for the remaining operations follow the same pattern as above. //
+ ////////////////////////////////////////////////////////////////////////////
+``
+
+[endsect]
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_basic_type.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_basic_type.qbk 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,82 @@
+[section Interlocked Basic Type]
+
+[heading Description]
+
+An [concept Interlocked Basic Type] is a type whose instances support
+thread-safe `load` and `store` operations and which are often used in the
+implementation of lock-free code. In the current version of Boost.Act, only
+built-in types may be [concept Interlocked Basic Types], although this will
+likely change in future releases.
+
+[variablelist Notation
+[[`I`] [An [concept Interlocked Basic Type].] ]
+[[`i`] [A value of type `I&`.] ]
+[[`C1`] [A type which is convertible to `remove_cv<I>::type&`.] ]
+[[`c1`] [A value of type `C1 const&`.] ]
+[[`IU`] [`remove_cv<I>::type`.] ]
+]
+
+[heading Expression Requirements]
+
+In order to be considered a valid [concept Interlocked Type], the type must be
+/default constructible/, /copy-constructible/, and /copy-assignable/. These
+operations are not interlocked operations and do not guarantee a specific
+ordering of any kind.
+
+[note
+Each of the following operations is a valid __interlocked_operation__, therefore
+user-specified semantics may be applied. In addition to this, all operations
+listed below have a return type of `boost::remove_cv<IV>::type` and yield the
+value of target object prior to the operation being applied. Allowed
+user-specified semantics for these operations are `acquire`, `release`,
+`acq_rel`, `unordered`, and `default_`. If no semantics are explicitly specified
+or if `default_` semantics are specified, then the operation is performed with
+`acq_rel` semantics.
+]
+
+[table Interlocked Type Requirements
+[[Expression] [Return Type][Pre/Post-Condition] ]
+[[`load( i )`] [`IU`] [Returns the value stored in `i`. This
+ function is an
+ __interlocked_operation__ and defaults to
+ `acquire` semantics. Allowable semantics
+ for this operation are `unordered` and
+ `acquire`.
+ ] ]
+[[`store( i, c1 )`] [`void`] [Stores the value of `c1` to object `i`.
+ This function is an
+ __interlocked_operation__ and defaults to
+ `release` semantics. Allowable semantics
+ for this operation are `unordered` and
+ `release`.
+ ] ]
+]
+
+[heading Headers]
+
+``
+ // Brings in all interlocked operations.
+ #include <boost/act/interlocked.hpp>
+
+ // Only forward declarations.
+ #include <boost/act/interlocked_fwd.hpp>
+
+ // load headers.
+ #include <boost/act/interlocked/load.hpp>
+ #include <boost/act/interlocked/load/load.hpp>
+ #include <boost/act/interlocked/load/load_acquire.hpp>
+ #include <boost/act/interlocked/load/load_unordered.hpp>
+
+ // Forward declarations.
+ #include <boost/act/interlocked/load_fwd.hpp>
+ #include <boost/act/interlocked/load/load_fwd.hpp>
+ /* etc. */
+
+
+ // store headers.
+ #include <boost/act/interlocked/store.hpp>
+ #include <boost/act/interlocked/store/store.hpp>
+ /* etc. */
+``
+
+[endsect]
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_integer_type.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_integer_type.qbk 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,83 @@
+[section Interlocked Integer Type]
+
+[heading Description]
+
+An [concept Interlocked Integer Type] is an __interlocked_arithmetic_type__
+which supports common integer operations.
+
+[variablelist Notation
+[[`I`] [An [concept Interlocked Integer Type].] ]
+[[`i`] [A value of type `I`.] ]
+[[`C1`] [A type which is convertible to `remove_cv<I>::type&`.] ]
+[[`c1`] [A value of type `C1 const&`.] ]
+]
+
+[heading Refinement of]
+__interlocked_arithmetic_type__
+
+[heading Expression Requirements]
+
+In order to be considered a valid [concept Interlocked Integer Type], given
+the variable definitions below, the following expressions must be well-formed
+and have the indicated effects, in addition to those requirements of
+__interlocked_arithmetic_type__. [concept Interlocked Integer Types] also
+support all operations specified in the C++ standard for integer types. Such
+operations do not imply memory barriers of any kind.
+
+[note
+Each of the following operations is a valid __interlocked_operation__, therefore
+user-specified semantics may be applied. In addition to this, all operations
+listed below have a return type of `boost::remove_cv<IV>::type` and yield the
+value of target object prior to the operation being applied. Allowed
+user-specified semantics for these operations are `acquire`, `release`,
+`acq_rel`, `unordered`, and `default_`. If no semantics are explicitly specified
+or if `default_` semantics are specified, then the operation is performed with
+`acq_rel` semantics.
+]
+
+[table Interlocked Integer Type Requirements
+[[Expression] [Operation (Returns Old Value)] ]
+[[`bitand_assign( i, c1 )`] [`i &= c1;`] ]
+[[`bitor_assign( i, c1 )`] [`i |= c1;`] ]
+[[`compl_assign( i )`] [`i = ~i;`] ]
+[[`lshift_assign( i, c1 )`] [`i <<= c1;`] ]
+[[`mod_assign( i, c1 )`] [`i %= c1;`] ]
+[[`rshift_assign( i, c1 )`] [`i >>= c1;`] ]
+[[`xor_assign( i, c1 )`] [`i ^= c1;`] ]
+]
+
+[heading Headers]
+
+``
+ // Brings in all interlocked operations.
+ #include <boost/act/interlocked.hpp>
+
+ // Only forward declarations.
+ #include <boost/act/interlocked_fwd.hpp>
+
+ // bitand_assign headers.
+ #include <boost/act/interlocked/bitand_assign.hpp>
+ #include <boost/act/interlocked/bitand_assign/bitand_assign.hpp>
+ #include <boost/act/interlocked/bitand_assign/bitand_assign_acquire.hpp>
+ #include <boost/act/interlocked/bitand_assign/bitand_assign_release.hpp>
+ #include <boost/act/interlocked/bitand_assign/bitand_assign_acq_rel.hpp>
+ #include <boost/act/interlocked/bitand_assign/bitand_assign_unordered.hpp>
+
+
+ // Forward declarations.
+ #include <boost/act/interlocked/bitand_assign_fwd.hpp>
+ #include <boost/act/interlocked/bitand_assign/bitand_assign_fwd.hpp>
+ /* etc. */
+
+
+ // bitor_assign headers.
+ #include <boost/act/interlocked/bitor_assign.hpp>
+ #include <boost/act/interlocked/bitor_assign/bitor_assign.hpp>
+ /* etc. */
+
+ ////////////////////////////////////////////////////////////////////////////
+ // Headers for the remaining operations follow the same pattern as above. //
+ ////////////////////////////////////////////////////////////////////////////
+``
+
+[endsect]
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_natural_type.qbk
==============================================================================
Added: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_operation.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/interlocked/concepts/interlocked_operation.qbk 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -0,0 +1,83 @@
+[section Interlocked Operation]
+
+An [concept Interlocked Operation] is a function which provides guarantees
+concerning order and visibility of read and write operations with respect to
+multiple threads, often with semantics which may be specified by users at the
+call site.
+
+In order to be considered a valid [concept Interlocked Operation], given
+the variable definitions below, the following expressions must be well-formed
+and have the indicated effects.
+
+[variablelist Notation
+[[[~name]][An [concept Interlocked Operation].] ]
+[[`S`] [A __semantic_type__.] ]
+[[[~args]] [The argument list (if any) for the
+ [concept Interlocked Operation].
+ ] ]
+]
+
+[def __op_call__ name(args) ]
+[def __op_call_sem__ name<S>(args)]
+
+[heading Expression Requirements]
+
+[table Interlocked Operation Requirements
+[[Expression] [Pre/Post-Condition] ]
+[[`__op_call__`] [Performs the operation with the
+ default semantics as specified for
+ that operation.
+ ] ]
+[[`__op_call_sem__`] [Performs the operation with the
+ specified semantics.
+ [tablenote Not all
+ [concept Interlocked Operations]
+ support every __semantic_type__.
+ Refer to documentation for the
+ corresponding operation for exactly
+ which semantics are supported for
+ that operation. All
+ [concept Interlocked Operations]
+ must support the `default_`
+ __semantic_type__.
+ ]
+ ] ]
+]
+
+[heading Semantic Type]
+
+While all [concept Interlocked Operations] specify certain guarantees by
+default, these may often be toggled to make an operation's ordering more or less
+constrained by passing a [concept Semantic Type] as an explicit template
+argument to the corresponding template. Not all [concept Interlocked Operations]
+support all [concept Semantic Types].
+
+[note
+If you are unsure as to which semantics you should use for a given situation, it
+is generally safest to use the default semantics of the corresponding
+[concept Interlocked Operation]. If efficiency is important for your
+application, you should prefer to use the least-restrictive semantics that you
+can without breaking allowable ordering of visibility between threads.
+]
+
+[table Semantic Types
+[[Type] [Ordering Guarantee] ]
+[[`unordered`][No ordering guarantee.] ]
+[[`acquire`] [The operation is made visible before all subsequent instructions.
+ `acquire` semantics are generally used for read or read-write
+ operations.
+ ] ]
+[[`release`] [The operation is made visible after all prior instructions.
+ `release` semantics are generally used for write or read-write
+ operations.
+ ] ]
+[[`acq_rel`] [Combines the ordering guarantees of both `acquire` and `release`.
+ `acq_rel` semantics are generally used for read-write operations
+ only.
+ ] ]
+[[`default_`] [Uses the default ordering guarantees as specified by the
+ corresponding [concept Interlocked Operation].
+ ] ]
+]
+
+[endsect]
Modified: sandbox/SOC/2006/concurrency/trunk/libs/act/doc/rationale.qbk
==============================================================================
--- sandbox/SOC/2006/concurrency/trunk/libs/act/doc/rationale.qbk (original)
+++ sandbox/SOC/2006/concurrency/trunk/libs/act/doc/rationale.qbk 2007-06-30 16:02:56 EDT (Sat, 30 Jun 2007)
@@ -4,7 +4,7 @@
decisions. This section is provided to briefly describe the rationale behind
some of these decisions.
-[section Policy-Based Design]
+[heading Policy-Based Design]
Boost.Act offers programmers customizability through two kinds of policies which
control algorithm execution and active qualification implementation. These
@@ -39,9 +39,7 @@
more simple logical problem which exists at a higher-level in the algorithm's
design.
-[endsect]
-
-[section Actions vs. Futures]
+[heading Actions vs. Futures]
Another fairly controversial design decision is the absence of futures, or at
least futures as they are commonly known. Rather than returning futures from
@@ -63,5 +61,3 @@
in a future-like manner may do so.
[endsect]
-
-[endsect]
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk