File tree Expand file tree Collapse file tree 4 files changed +604
-7
lines changed Expand file tree Collapse file tree 4 files changed +604
-7
lines changed Original file line number Diff line number Diff line change 315
315
A standard library function is \defn {vectorization-unsafe}
316
316
if it is specified to synchronize with another function invocation, or
317
317
another function invocation is specified to synchronize with it,
318
- and if it is not a memory allocation or deallocation function.
318
+ and if it is not a memory allocation or deallocation function
319
+ or lock-free atomic modify-write operation\iref {atomics.order }.
319
320
\begin {note }
320
321
Implementations must ensure that internal synchronization
321
322
inside standard library functions does not prevent forward progress
Original file line number Diff line number Diff line change 6617
6617
\item invoke the function \tcode {std::this_thread::yield}\iref {thread.thread.this },
6618
6618
\item make a call to a library I/O function,
6619
6619
\item perform an access through a volatile glvalue,
6620
- \item perform a synchronization operation or an atomic operation, or
6620
+ \item perform an atomic or synchronization operation
6621
+ other than an atomic modify-write operation\iref {atomics.order }, or
6621
6622
\item continue execution of a trivial infinite loop\iref {stmt.iter.general }.
6622
6623
\end {itemize }
6623
6624
\begin {note }
6674
6675
an \defn {execution step}:
6675
6676
\begin {itemize }
6676
6677
\item termination of the thread of execution,
6677
- \item performing an access through a volatile glvalue, or
6678
- \item completion of a call to a library I/O function, a
6679
- synchronization operation, or an atomic operation.
6678
+ \item performing an access through a volatile glvalue,
6679
+ \item completion of a call to a library I/O function, or
6680
+ \item completion of an atomic or synchronization operation
6681
+ other than an atomic modify-write operation\iref {atomics.order }.
6680
6682
\end {itemize }
6681
6683
6682
6684
\pnum
Original file line number Diff line number Diff line change 579
579
#define @\defnlibxname {cpp_lib_atomic_is_always_lock_free}@ 201603L // freestanding, also in \libheader {atomic}
580
580
#define @\defnlibxname {cpp_lib_atomic_lock_free_type_aliases}@ 201907L // also in \libheader {atomic}
581
581
#define @\defnlibxname {cpp_lib_atomic_min_max}@ 202403L // freestanding, also in \libheader {atomic}
582
+ #define @\defnlibxname {cpp_lib_atomic_reductions}@ 202506L // freestanding, also in \libheader {atomic}
582
583
#define @\defnlibxname {cpp_lib_atomic_ref}@ 202411L // freestanding, also in \libheader {atomic}
583
584
#define @\defnlibxname {cpp_lib_atomic_shared_ptr}@ 201711L // also in \libheader {memory}
584
585
#define @\defnlibxname {cpp_lib_atomic_value_initialization}@ 201911L // freestanding, also in \libheader {atomic}, \libheader {memory}
You can’t perform that action at this time.
0 commit comments