Skip to content

Commit c9d347e

Browse files
committed
Merge github.com:cplusplus/parallelism-ts
Conflicts: bower_components/cxx-html-doc-framework/base.css
2 parents f749596 + 5f1f5d0 commit c9d347e

File tree

8 files changed

+1175
-532
lines changed

8 files changed

+1175
-532
lines changed

algorithms.html

Lines changed: 265 additions & 110 deletions
Large diffs are not rendered by default.

bower_components/cxx-html-doc-framework/base.css

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,17 @@ p:first-child, ul, ol {margin-top: 0}
7777
del {text-decoration: line-through; color: #8B0040;}
7878
ins {text-decoration: underline; color: #005100;}
7979

80+
del2 {text-decoration: line-through; color: #FF0040; font-size:100%;}
81+
ins2 {text-decoration: underline; color: #FF0040; font-size:100%;}
82+
/* inserted in TS and then deleted for LWG */
83+
insdel {text-decoration: line-through; color: #FF4440; font-size:100%;}
84+
85+
del3 {text-decoration: line-through; color: #006666; font-size:100%;}
86+
ins3 {text-decoration: underline; color: #00CC66; font-size:100%;}
87+
88+
/* inserted in Rappersil and then deleted by another paper */
89+
insdel2 {text-decoration: line-through; color: #003366; font-size:100%;}
90+
8091
pre {
8192
margin-left: 1em;
8293
margin-top: .5em;

exceptions.html

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,27 @@ <h1>Parallel exceptions</h1>
33
<cxx-section id="parallel.exceptions.behavior">
44
<h1>Exception reporting behavior</h1>
55
<p>
6-
During the execution of a standard parallel algorithm,
7-
if temporary memory resources are required and none are available,
6+
<ins2>During the execution of a standard parallel algorithm, </ins2>
7+
<del2>I</del2><ins2>i</ins2>f temporary memory resources are required <del2>by the algorithm</del2> and none are available,
88
the algorithm throws a <code>std::bad_alloc</code> exception.
99
</p>
1010
<p>
11-
During the execution of a standard parallel algorithm, if the <del>application of a function
12-
object</del><ins>invocation of an element access function</ins> terminates with an uncaught
11+
During the execution of a standard parallel algorithm, if the <del3>application of a function
12+
object</del3><ins3>invocation of an element access function</ins> terminates with an uncaught
1313
exception, the behavior of the program is determined by the type of execution policy used to
1414
invoke the algorithm:
1515

1616
<ul>
1717
<li>
18-
If the execution policy object is of type <code>class parallel_vector_execution_policy</code>,
18+
If the execution policy object is of type <code>class <del2>vector_execution_policy</del2><ins2>parallel_vector_execution_policy</ins2></code>,
1919
<code>std::terminate</code> shall be called.
2020
</li>
2121
<li>
2222
If the execution policy object is of type <code>sequential_execution_policy</code> or
2323
<code>parallel_execution_policy</code>, the execution of the algorithm terminates with an
2424
<code>exception_list</code> exception. All uncaught exceptions thrown during
25-
the <del>application of user-provided function objects</del><ins>invocations of element access functions</ins>
26-
shall be contained in the <code>exception_list</code>.<pre>
25+
the <del3>application of user-provided function objects</del3><ins3>invocations of element
26+
access functions</ins3> shall be contained in the <code>exception_list</code>.<pre>
2727
</pre>
2828

2929
<cxx-note>
@@ -60,28 +60,41 @@ <h1>Header <code>&lt;experimental/exception_list&gt;</code> synopsis</h1>
6060
namespace std {
6161
namespace experimental {
6262
namespace parallel {
63-
inline namespace v1 {
63+
<ins2>inline namespace v1 {</ins2>
6464

6565
class exception_list : public exception
6666
{
6767
public:
68-
typedef <em>unspecified</em> iterator;
68+
<del2>
69+
typedef exception_ptr value_type;
70+
typedef const value_type&amp; reference;
71+
typedef const value_type&amp; const_reference;
72+
typedef <em>implementation-defined</em> const_iterator;
73+
typedef const_iterator iterator;
74+
typedef typename iterator_traits<ins2>&lt;const_iterator&gt;</ins2>::difference_type difference_type;
75+
typedef size_t size_type;</del2>
76+
<ins2>
77+
typedef <em>unspecified</em> iterator;</ins2>
6978

7079
size_t size() const noexcept;
7180
iterator begin() const noexcept;
7281
iterator end() const noexcept;
7382

74-
const char* what() const override noexcept;
83+
<ins2>const char* what() const noexcept override;</ins2>
84+
<del2>
85+
private:
86+
std::list&lt;exception_ptr&gt; exceptions_; // exposition only
87+
</del2>
7588
};
76-
}
89+
<ins2>}</ins2>
7790
}
7891
}
7992
}
8093
</pre>
8194

8295
<p>
83-
The class <code>exception_list</code> owns a sequence of <code>exception_ptr</code> objects. The parallel
84-
algorithms may use the <code>exception_list</code> to communicate uncaught exceptions encountered during parallel execution to the
96+
The class <code>exception_list</code> <del2>is a container</del2> <ins2>owns a sequence</ins2> of <code>exception_ptr</code> objects <ins2>.The</ins2> parallel
97+
algorithms may use <ins2>the <code>exception_list</code></ins2> to communicate uncaught exceptions encountered during parallel execution to the
8598
caller of the algorithm.
8699
</p>
87100

@@ -106,7 +119,7 @@ <h1>Header <code>&lt;experimental/exception_list&gt;</code> synopsis</h1>
106119

107120
<cxx-function>
108121
<cxx-signature>
109-
iterator begin() const noexcept;
122+
<del2>exception_list::</del2>iterator begin() const noexcept;
110123
</cxx-signature>
111124

112125
<cxx-returns>
@@ -116,21 +129,21 @@ <h1>Header <code>&lt;experimental/exception_list&gt;</code> synopsis</h1>
116129

117130
<cxx-function>
118131
<cxx-signature>
119-
iterator end() const noexcept;
132+
<del2>exception_list::</del2>iterator end() const noexcept;
120133
</cxx-signature>
121134

122135
<cxx-returns>
123-
An iterator that is past the end of the owned sequence.
136+
An iterator <del2>which is the past-the-end value for the <code>exception_list</code></del2> <ins2>that is past the end of the owned sequence.</ins2>
124137
</cxx-returns>
125138
</cxx-function>
126139

127140
<cxx-function>
128141
<cxx-signature>
129-
const char* what() const noexcept override;
142+
<ins2>const char* what() const noexcept override;</ins2>
130143
</cxx-signature>
131144

132145
<cxx-returns>
133-
An implementation-defined NTBS.
146+
<ins2>An implementation-defined NTBS.</ins2>
134147
</cxx-returns>
135148
</cxx-function>
136149
</cxx-section>

0 commit comments

Comments
 (0)