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 315315A standard library function is \defn {vectorization-unsafe}
316316if it is specified to synchronize with another function invocation, or
317317another 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 }.
319320\begin {note }
320321Implementations must ensure that internal synchronization
321322inside standard library functions does not prevent forward progress
Original file line number Diff line number Diff line change 66176617\item invoke the function \tcode {std::this_thread::yield}\iref {thread.thread.this },
66186618\item make a call to a library I/O function,
66196619\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
66216622\item continue execution of a trivial infinite loop\iref {stmt.iter.general }.
66226623\end {itemize }
66236624\begin {note }
66746675an \defn {execution step}:
66756676\begin {itemize }
66766677\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 }.
66806682\end {itemize }
66816683
66826684\pnum
Original file line number Diff line number Diff line change 579579#define @\defnlibxname {cpp_lib_atomic_is_always_lock_free}@ 201603L // freestanding, also in \libheader {atomic}
580580#define @\defnlibxname {cpp_lib_atomic_lock_free_type_aliases}@ 201907L // also in \libheader {atomic}
581581#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}
582583#define @\defnlibxname {cpp_lib_atomic_ref}@ 202411L // freestanding, also in \libheader {atomic}
583584#define @\defnlibxname {cpp_lib_atomic_shared_ptr}@ 201711L // also in \libheader {memory}
584585#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