atomic_compare_exchange#
Header File: <Kokkos_Core.hpp>
Usage#
old_val = atomic_compare_exchange(ptr_to_value,
comparison_value,
new_value);
Atomically sets the value at the address given by ptr_to_value to new_value if the current value at ptr_to_value
is equal to comparison_value, and returns the previously stored value at the address independent on whether
the exchange has happened.
Description#
-
template<class T>
T atomic_compare_exchange(T *const ptr_to_value, const T comparison_value, const T new_value);# Atomically executes
old_value = *ptr_to_value; if(old_value==comparison_value) *ptr_to_value = new_value; return old_value;, whereold_valueis the value at addressptr_to_valuebefore doing the exchange.- Parameters:
ptr_to_value – address of the value to be updated
comparison_value – value to be compared to
new_value – new value