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;, where old_value is the value at address ptr_to_value before 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