[glib] Add macro version for all atomic operations



commit 00734ef99f2c10bcd25fd85a453712a46d3cf806
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat May 28 00:16:39 2011 -0400

    Add macro version for all atomic operations
    
    Better to be consistent about this.

 glib/gatomic.h |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)
---
diff --git a/glib/gatomic.h b/glib/gatomic.h
index 9c85607..544b6f1 100644
--- a/glib/gatomic.h
+++ b/glib/gatomic.h
@@ -99,16 +99,28 @@ void     g_atomic_pointer_set                  (volatile gpointer G_GNUC_MAY_ALI
 
 #else
 
-# define g_atomic_int_get(atomic) \
+#define g_atomic_int_exchange_and_add(atomic,val) \
+ (G_STATIC_ASSERT_EXPR(sizeof (*(atomic)) == sizeof (gint)), \
+  (g_atomic_int_exchange_and_add) ((volatile gint G_GNUC_MAY_ALIAS *) (volatile void *) (atomic), (val)))
+#define g_atomic_int_add(atomic,val) \
+ (G_STATIC_ASSERT_EXPR(sizeof (*(atomic)) == sizeof (gint)), \
+  (g_atomic_int_add) ((volatile gint G_GNUC_MAY_ALIAS *) (volatile void *) (atomic), (val)))
+#define g_atomic_int_compare_and_exchange(atomic,oldval,newval) \
+ (G_STATIC_ASSERT_EXPR(sizeof (*(atomic)) == sizeof (gint)), \
+  (g_atomic_int_compare_and_exchange) ((volatile gint G_GNUC_MAY_ALIAS *) (volatile void *) (atomic), (oldval), (newval)))
+#define g_atomic_pointer_compare_and_exchange(atomic,oldval,newval) \
+ (G_STATIC_ASSERT_EXPR(sizeof (*(atomic)) == sizeof (gpointer)), \
+  (g_atomic_pointer_compare_and_exchange) ((volatile gpointer G_GNUC_MAY_ALIAS *) (volatile void *) (atomic), (oldval), (newval)))
+#define g_atomic_int_get(atomic) \
  (G_STATIC_ASSERT_EXPR(sizeof (*(atomic)) == sizeof (gint)), \
   (g_atomic_int_get) ((volatile gint G_GNUC_MAY_ALIAS *) (volatile void *) (atomic)))
-# define g_atomic_int_set(atomic, newval) \
+#define g_atomic_int_set(atomic, newval) \
  (G_STATIC_ASSERT_EXPR(sizeof (*(atomic)) == sizeof (gint)), \
   (g_atomic_int_set) ((volatile gint G_GNUC_MAY_ALIAS *) (volatile void *) (atomic), (newval)))
-# define g_atomic_pointer_get(atomic) \
+#define g_atomic_pointer_get(atomic) \
  (G_STATIC_ASSERT_EXPR(sizeof (*(atomic)) == sizeof (gpointer)), \
   (g_atomic_pointer_get) ((volatile gpointer G_GNUC_MAY_ALIAS *) (volatile void *) (atomic)))
-# define g_atomic_pointer_set(atomic, newval) \
+#define g_atomic_pointer_set(atomic, newval) \
  (G_STATIC_ASSERT_EXPR(sizeof (*(atomic)) == sizeof (gpointer)), \
   (g_atomic_pointer_set) ((volatile gpointer G_GNUC_MAY_ALIAS *) (volatile void *) (atomic), (newval)))
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]