X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2Flitmus%2Fwrc.cc;h=7d295fe128cbc67eccd05464146745cd4405fae5;hb=HEAD;hp=225eb4b2cbad2f2aadb6c9bd495debbbbf470124;hpb=9aae08ba6d60aa253039d2da1c3571fdde2ac159;p=model-checker.git diff --git a/test/litmus/wrc.cc b/test/litmus/wrc.cc index 225eb4b..7d295fe 100644 --- a/test/litmus/wrc.cc +++ b/test/litmus/wrc.cc @@ -5,19 +5,23 @@ 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) - x[idx - 1].load(std::memory_order_relaxed); + x[idx - 1].load(load_mo); if (idx < N) - x[idx].store(1, std::memory_order_relaxed); + x[idx].store(1, store_mo); else - x[0].load(std::memory_order_relaxed); + x[0].load(load_mo); } int user_main(int argc, char **argv)