|
constexpr | atomic () noexcept=default |
| Default constructor. More...
|
|
constexpr | atomic (T d) noexcept |
| Constructor with initialize value. More...
|
|
void | store (T operand, sycl::memory_order memoryOrder=default_write_order, sycl::memory_scope memoryScope=default_scope) noexcept |
| atomically replaces the value of the referenced object with a non-atomic argument More...
|
|
T | load (sycl::memory_order memoryOrder=default_read_order, sycl::memory_scope memoryScope=default_scope) const noexcept |
| atomically obtains the value of the referenced object More...
|
|
T | exchange (T operand, sycl::memory_order memoryOrder=default_read_modify_write_order, sycl::memory_scope memoryScope=default_scope) noexcept |
| atomically replaces the value of the referenced object and obtains the value held previously More...
|
|
bool | compare_exchange_weak (T &expected, T desired, sycl::memory_order success, sycl::memory_order failure, sycl::memory_scope memoryScope=default_scope) noexcept |
| atomically compares the value of the referenced object with non-atomic argument and performs atomic exchange if equal or atomic load if not More...
|
|
bool | compare_exchange_weak (T &expected, T desired, sycl::memory_order memoryOrder=default_read_modify_write_order, sycl::memory_scope memoryScope=default_scope) noexcept |
|
bool | compare_exchange_strong (T &expected, T desired, sycl::memory_order success, sycl::memory_order failure, sycl::memory_scope memoryScope=default_scope) noexcept |
| atomically compares the value of the referenced object with non-atomic argument and performs atomic exchange if equal or atomic load if not More...
|
|
bool | compare_exchange_strong (T &expected, T desired, sycl::memory_order memoryOrder=default_read_modify_write_order, sycl::memory_scope memoryScope=default_scope) noexcept |
|
T | fetch_add (arith_t< T > operand, sycl::memory_order memoryOrder=default_read_modify_write_order, sycl::memory_scope memoryScope=default_scope) noexcept |
| atomically adds the argument to the value stored in the atomic object and obtains the value held previously More...
|
|
T | fetch_sub (arith_t< T > operand, sycl::memory_order memoryOrder=default_read_modify_write_order, sycl::memory_scope memoryScope=default_scope) noexcept |
| atomically subtracts the argument from the value stored in the atomic object and obtains the value held previously More...
|
|
template<typename T, sycl::memory_scope DefaultScope = sycl::memory_scope::system, sycl::memory_order DefaultOrder = sycl::memory_order::seq_cst, sycl::access::address_space Space = sycl::access::address_space::generic_space>
class syclcompat::atomic< T, DefaultScope, DefaultOrder, Space >
Definition at line 307 of file atomic.hpp.
template<typename T , sycl::memory_scope DefaultScope = sycl::memory_scope::system, sycl::memory_order DefaultOrder = sycl::memory_order::seq_cst, sycl::access::address_space Space = sycl::access::address_space::generic_space>
Constructor with initialize value.
Definition at line 330 of file atomic.hpp.
template<typename T , sycl::memory_scope DefaultScope = sycl::memory_scope::system, sycl::memory_order DefaultOrder = sycl::memory_order::seq_cst, sycl::access::address_space Space = sycl::access::address_space::generic_space>
template<typename T , sycl::memory_scope DefaultScope = sycl::memory_scope::system, sycl::memory_order DefaultOrder = sycl::memory_order::seq_cst, sycl::access::address_space Space = sycl::access::address_space::generic_space>
atomically compares the value of the referenced object with non-atomic argument and performs atomic exchange if equal or atomic load if not
- Parameters
-
expected | The value expected to be found in the object referenced by the atomic_ref object |
desired | The value to store in the referenced object if it is as expected |
success | The memory models for the read-modify-write |
failure | The memory models for load operations |
memoryScope | The memory scope used. |
- Returns
- true if the referenced object was successfully changed, false otherwise.
Definition at line 417 of file atomic.hpp.
References sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_strong().
template<typename T , sycl::memory_scope DefaultScope = sycl::memory_scope::system, sycl::memory_order DefaultOrder = sycl::memory_order::seq_cst, sycl::access::address_space Space = sycl::access::address_space::generic_space>
template<typename T , sycl::memory_scope DefaultScope = sycl::memory_scope::system, sycl::memory_order DefaultOrder = sycl::memory_order::seq_cst, sycl::access::address_space Space = sycl::access::address_space::generic_space>
atomically compares the value of the referenced object with non-atomic argument and performs atomic exchange if equal or atomic load if not
- Parameters
-
expected | The value expected to be found in the object referenced by the atomic_ref object |
desired | The value to store in the referenced object if it is as expected |
success | The memory models for the read-modify-write |
failure | The memory models for load operations |
memoryScope | The memory scope used. |
- Returns
- true if the referenced object was successfully changed, false otherwise.
Definition at line 379 of file atomic.hpp.
References sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_weak().
template<typename T , sycl::memory_scope DefaultScope = sycl::memory_scope::system, sycl::memory_order DefaultOrder = sycl::memory_order::seq_cst, sycl::access::address_space Space = sycl::access::address_space::generic_space>
template<typename T , sycl::memory_scope DefaultScope = sycl::memory_scope::system, sycl::memory_order DefaultOrder = sycl::memory_order::seq_cst, sycl::access::address_space Space = sycl::access::address_space::generic_space>
template<typename T , sycl::memory_scope DefaultScope = sycl::memory_scope::system, sycl::memory_order DefaultOrder = sycl::memory_order::seq_cst, sycl::access::address_space Space = sycl::access::address_space::generic_space>