File tree Expand file tree Collapse file tree 4 files changed +605
-7
lines changed
Expand file tree Collapse file tree 4 files changed +605
-7
lines changed Original file line number Diff line number Diff line change 339339A standard library function is \defn{vectorization-unsafe}
340340if it is specified to synchronize with another function invocation, or
341341another function invocation is specified to synchronize with it,
342- and if it is not a memory allocation or deallocation function.
342+ and if it is not a memory allocation or deallocation function
343+ or lock-free atomic modify-write operation\iref{atomics.order}.
343344\begin{note}
344345Implementations must ensure that internal synchronization
345346inside standard library functions does not prevent forward progress
Original file line number Diff line number Diff line change 69196919\item invoke the function \tcode {std::this_thread::yield}\iref {thread.thread.this },
69206920\item make a call to a library I/O function,
69216921\item perform an access through a volatile glvalue,
6922- \item perform a synchronization operation or an atomic operation, or
6922+ \item perform an atomic or synchronization operation
6923+ other than an atomic modify-write operation\iref {atomics.order }, or
69236924\item continue execution of a trivial infinite loop\iref {stmt.iter.general }.
69246925\end {itemize }
69256926\begin {note }
69766977an \defn {execution step}:
69776978\begin {itemize }
69786979\item termination of the thread of execution,
6979- \item performing an access through a volatile glvalue, or
6980- \item completion of a call to a library I/O function, a
6981- synchronization operation, or an atomic operation.
6980+ \item performing an access through a volatile glvalue,
6981+ \item completion of a call to a library I/O function, or
6982+ \item completion of an atomic or synchronization operation
6983+ other than an atomic modify-write operation\iref {atomics.order }.
69826984\end {itemize }
69836985
69846986\pnum
Original file line number Diff line number Diff line change 591591#define @\defnlibxname {cpp_lib_atomic_is_always_lock_free}@ 201603L // freestanding, also in \libheader {atomic}
592592#define @\defnlibxname {cpp_lib_atomic_lock_free_type_aliases}@ 201907L // also in \libheader {atomic}
593593#define @\defnlibxname {cpp_lib_atomic_min_max}@ 202506L // freestanding, also in \libheader {atomic}
594+ #define @\defnlibxname {cpp_lib_atomic_reductions}@ 202506L // freestanding, also in \libheader {atomic}
594595#define @\defnlibxname {cpp_lib_atomic_ref}@ 202411L // freestanding, also in \libheader {atomic}
595596#define @\defnlibxname {cpp_lib_atomic_shared_ptr}@ 201711L // also in \libheader {memory}
596597#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