Wrapper around a trivially copyable type to make load/store operations atomic and sequentially consistent.
More...
|
| Atomic ()=default |
| Trivial constructor, does not initialize the underlying value. More...
|
|
| Atomic (T val) |
| Initialize the underlying value to val More...
|
|
| Atomic (const Atomic &val) |
|
T | operator= (T val) volatile |
| Assign value. More...
|
|
T | operator= (const Atomic &val) volatile |
|
| operator T () const volatile |
| Read value. More...
|
|
void | store (T val, Order o=Order::seqCst) volatile |
|
T | load (Order o=Order::seqCst) const volatile |
|
bool | cas (T newVal, T cmp, Order o=Order::seqCst) volatile |
| Compare and swap. If atomic is equal to comparand cmp then atomic is assigned to newVal and true is returned. Returns false otherwise. More...
|
|
template<class T>
class honey::Atomic< T, false >
Wrapper around a trivially copyable type to make load/store operations atomic and sequentially consistent.