Skip to content

Commit 556c6da

Browse files
author
Dawn Perchik
committed
NB US-15, US-16, US-167, US-168, US-169, US-170, CA-17 P0502R0 Throwing out of a parallel algorithm terminates—but how?
As directed by LWG Motion 21 from 2016-Isaquah.
1 parent 7bcebfc commit 556c6da

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

source/algorithms.tex

+2-1
Original file line numberDiff line numberDiff line change
@@ -1410,7 +1410,8 @@
14101410

14111411
\pnum
14121412
During the execution of a parallel algorithm, if the invocation of an element
1413-
access function exits via an uncaught exception, \tcode{terminate()} is called.
1413+
access function exits via an uncaught exception,
1414+
the behavior is determined by the \tcode{ExecutionPolicy}.
14141415

14151416
\rSec2[algorithms.parallel.overloads]{\tcode{ExecutionPolicy} algorithm overloads}
14161417

source/exceptions.tex

+2
Original file line numberDiff line numberDiff line change
@@ -1266,6 +1266,8 @@
12661266
an exception~(\ref{thread.thread.constr}), or
12671267

12681268
\item%
1269+
for parallel algorithms whose \tcode{ExecutionPolicy} specify such
1270+
behavior~(\ref{execpol.seq}, \ref{execpol.par}, \ref{execpol.parunseq}),
12691271
when execution of an element access function~(\ref{algorithms.parallel.defns})
12701272
of a parallel algorithm exits via an exception~(\ref{algorithms.parallel.exceptions}), or
12711273

source/utilities.tex

+18
Original file line numberDiff line numberDiff line change
@@ -18372,6 +18372,12 @@
1837218372
The class \tcode{execution::sequenced_policy} is an execution policy type used
1837318373
as a unique type to disambiguate parallel algorithm overloading and require
1837418374
that a parallel algorithm's execution may not be parallelized.
18375+
18376+
\pnum
18377+
During the execution of a parallel algorithm with
18378+
the \tcode{execution::sequenced_policy_policy_policy} policy,
18379+
if the invocation of an element access function exits via an uncaught exception,
18380+
\tcode{terminate()} shall be called.
1837518381
\end{itemdescr}
1837618382

1837718383
\rSec2[execpol.par]{Parallel execution policy}
@@ -18386,6 +18392,12 @@
1838618392
The class \tcode{execution::parallel_policy} is an execution policy type used as
1838718393
a unique type to disambiguate parallel algorithm overloading and indicate that
1838818394
a parallel algorithm's execution may be parallelized.
18395+
18396+
\pnum
18397+
During the execution of a parallel algorithm with
18398+
the \tcode{execution::parallel_policy} policy,
18399+
if the invocation of an element access function exits via an uncaught exception,
18400+
\tcode{terminate()} shall be called.
1838918401
\end{itemdescr}
1839018402

1839118403
\rSec2[execpol.parunseq]{Parallel and unsequenced execution policy}
@@ -18401,6 +18413,12 @@
1840118413
used as a unique type to disambiguate parallel algorithm overloading and
1840218414
indicate that a parallel algorithm's execution may be parallelized and
1840318415
vectorized.
18416+
18417+
\pnum
18418+
During the execution of a parallel algorithm with
18419+
the \tcode{execution::parallel_policy_policy} policy,
18420+
if the invocation of an element access function exits via an uncaught exception,
18421+
\tcode{terminate()} shall be called.
1840418422
\end{itemdescr}
1840518423

1840618424
\rSec2[execpol.objects]{Execution policy objects}

0 commit comments

Comments
 (0)