18 #ifndef RAUL_ATOMIC_INT_HPP
19 #define RAUL_ATOMIC_INT_HPP
29 inline AtomicInt(
int val)
30 { g_atomic_int_set(&_val, val); }
32 inline AtomicInt(
const AtomicInt& copy)
33 { g_atomic_int_set(&_val, copy.get()); }
35 inline int get()
const
36 {
return g_atomic_int_get(&_val); }
38 inline void operator=(
int val)
39 { g_atomic_int_set(&_val, val); }
41 inline void operator+=(
int val)
42 { g_atomic_int_add(&_val, val); }
44 inline void operator-=(
int val)
45 { g_atomic_int_add(&_val, -val); }
47 inline bool operator==(
int val)
const
48 {
return get() == val; }
50 inline int operator+(
int val)
const
51 {
return get() + val; }
53 inline AtomicInt& operator++()
54 { g_atomic_int_inc(&_val);
return *
this; }
56 inline AtomicInt& operator--()
57 { g_atomic_int_add(&_val, -1);
return *
this; }
62 inline bool compare_and_exchange(
int oldval,
int newval)
63 {
return g_atomic_int_compare_and_exchange(&_val, oldval, newval); }
68 inline int exchange_and_add(
int val)
69 {
return g_atomic_int_exchange_and_add(&_val, val); }
74 inline bool decrement_and_test()
75 {
return g_atomic_int_dec_and_test(&_val); }
84 #endif // RAUL_ATOMIC_INT_HPP