25 #ifndef ATOMIC_GSSIZE_H_INCLUDED
26 #define ATOMIC_GSSIZE_H_INCLUDED
40 return g_atomic_pointer_add(&a->
value, add);
46 return g_atomic_pointer_add(&a->
value, -1 * sub);
52 return g_atomic_pointer_add(&a->
value, 1);
58 return g_atomic_pointer_add(&a->
value, -1);
64 return (gssize)g_atomic_pointer_get(&a->
value);
76 return (gsize)g_atomic_pointer_get(&a->
value);
88 return (gsize)a->
value;
106 return g_atomic_pointer_xor(&a->
value,
value);
112 return g_atomic_pointer_and(&a->
value,
value);
115 static inline gboolean
116 atomic_gssize_compare_and_exchange(
atomic_gssize *a, gssize oldval, gssize newval)
118 return g_atomic_pointer_compare_and_exchange(&a->
value, oldval, newval);
124 gssize oldval = atomic_gssize_get(a);
126 while (!atomic_gssize_compare_and_exchange(a, oldval,
value))
128 oldval = atomic_gssize_get(a);
G_STATIC_ASSERT(sizeof(gssize)==sizeof(gpointer))
Definition: atomic-gssize.h:33
gssize value
Definition: atomic-gssize.h:34
GString * value
Definition: test_decode.c:28