18 #ifndef RAUL_ATOMIC_PTR_HPP
19 #define RAUL_ATOMIC_PTR_HPP
33 { g_atomic_pointer_set(
static_cast<volatile gpointer*
>(&_val), NULL); }
36 { g_atomic_pointer_set(
static_cast<volatile gpointer*
>(&_val),
37 static_cast<gpointer
>(copy.get())); }
40 {
return static_cast<T*
>(g_atomic_pointer_get(
static_cast<volatile gpointer*
>(&_val))); }
42 inline void operator=(T* val)
43 { g_atomic_pointer_set(&_val,
static_cast<gpointer
>(val)); }
47 {
return g_atomic_pointer_compare_and_exchange(&_val, oldval, newval); }
50 mutable volatile gpointer _val;
Atomic pointer.
Definition: AtomicPtr.hpp:30
bool compare_and_exchange(gpointer oldval, gpointer newval)
Set value to newval iff current value is oldval.
Definition: AtomicPtr.hpp:46