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;
56 #endif // RAUL_ATOMIC_PTR_HPP