litmus: wrc: add macro for memory ordering
authorBrian Norris <banorris@uci.edu>
Sat, 9 Mar 2013 01:25:24 +0000 (17:25 -0800)
committerBrian Norris <banorris@uci.edu>
Sat, 9 Mar 2013 01:25:24 +0000 (17:25 -0800)
For manual inspection of these tests, one might want to change the
memory-ordering for the loads/stores.

Note that this changes the default to use relaxed.

test/litmus/wrc.cc

index 225eb4b2cbad2f2aadb6c9bd495debbbbf470124..7d295fe128cbc67eccd05464146745cd4405fae5 100644 (file)
@@ -5,19 +5,23 @@
 
 static int N = 2;
 
 
 static int N = 2;
 
-std::atomic_int *x;
+/* Can be tested for different behavior with relaxed vs. release/acquire/seq-cst */
+#define load_mo std::memory_order_relaxed
+#define store_mo std::memory_order_relaxed
+
+static std::atomic_int *x;
 
 static void a(void *obj)
 {
        int idx = *((int *)obj);
 
        if (idx > 0)
 
 static void a(void *obj)
 {
        int idx = *((int *)obj);
 
        if (idx > 0)
-               x[idx - 1].load(std::memory_order_relaxed);
+               x[idx - 1].load(load_mo);
 
        if (idx < N)
 
        if (idx < N)
-               x[idx].store(1, std::memory_order_relaxed);
+               x[idx].store(1, store_mo);
        else
        else
-               x[0].load(std::memory_order_relaxed);
+               x[0].load(load_mo);
 }
 
 int user_main(int argc, char **argv)
 }
 
 int user_main(int argc, char **argv)