21#ifndef CXXUTILS_ATOMIC_FETCH_MINMAX_H
22#define CXXUTILS_ATOMIC_FETCH_MINMAX_H
43 std::memory_order memorder = std::memory_order_seq_cst)
45 T orig =
a->load (memorder);
46 while (v > orig && !
a->compare_exchange_strong (orig, v, memorder)) {
64 std::memory_order memorder = std::memory_order_seq_cst)
66 T orig =
a->load (memorder);
67 while (v < orig && !a->compare_exchange_strong (orig, v, memorder)) {
void stall()
Emit stall instruction for use in a spin loop.
T atomic_fetch_max(std::atomic< T > *a, T v, std::memory_order memorder=std::memory_order_seq_cst)
Atomically calculate maximum.
T atomic_fetch_min(std::atomic< T > *a, T v, std::memory_order memorder=std::memory_order_seq_cst)
Atomically calculate minimum.
Emit stall instruction for use in a spin loop.