|
419 | 419 | which overrides the usual guarantee from \ref{intro.execution}
|
420 | 420 | that function executions do not overlap with one another.
|
421 | 421 | \end{note}
|
422 |
| -Since \tcode{execution::unsequenced_policy} allows |
| 422 | +The behavior of a program is undefined if |
| 423 | +it invokes a vectorization-unsafe standard library function |
| 424 | +from user code |
| 425 | +called from a \tcode{execution::unsequenced_policy} algorithm. |
| 426 | +\begin{note} |
| 427 | +Because \tcode{execution::unsequenced_policy} allows |
423 | 428 | the execution of element access functions
|
424 | 429 | to be interleaved on a single thread of execution,
|
425 | 430 | blocking synchronization, including the use of mutexes, risks deadlock.
|
426 |
| -Thus, the synchronization with \tcode{execution::unsequenced_policy} |
427 |
| -is restricted as follows: |
428 |
| -vectorization-unsafe standard library functions may not be invoked |
429 |
| -by user code called from \tcode{execution::unsequenced_policy} algorithms. |
| 431 | +\end{note} |
430 | 432 |
|
431 | 433 | \pnum
|
432 | 434 | The invocations of element access functions in parallel algorithms invoked with
|
|
503 | 505 | which overrides the usual guarantee from \ref{intro.execution}
|
504 | 506 | that function executions do not overlap with one another.
|
505 | 507 | \end{note}
|
506 |
| -Since \tcode{execution::parallel_unsequenced_policy} allows |
| 508 | +The behavior of a program is undefined if |
| 509 | +it invokes a vectorization-unsafe standard library function |
| 510 | +from user code |
| 511 | +called from a \tcode{execution::parallel_unsequenced_policy} algorithm. |
| 512 | +\begin{note} |
| 513 | +Because \tcode{execution::parallel_unsequenced_policy} allows |
507 | 514 | the execution of element access functions
|
508 | 515 | to be interleaved on a single thread of execution,
|
509 | 516 | blocking synchronization, including the use of mutexes, risks deadlock.
|
510 |
| -Thus, the synchronization with \tcode{execution::parallel_unsequenced_policy} |
511 |
| -is restricted as follows: |
512 |
| -vectorization-unsafe standard library functions may not be invoked by user code |
513 |
| -called from \tcode{execution::parallel_unsequenced_policy} algorithms. |
| 517 | +\end{note} |
514 | 518 |
|
515 | 519 | \pnum
|
516 | 520 | \begin{note}
|
|
0 commit comments