X-Git-Url: http://plrg.eecs.uci.edu/git/?p=cdsspec-compiler.git;a=blobdiff_plain;f=benchmark%2Fread-copy-update%2Frcu.cc;fp=benchmark%2Fread-copy-update%2Frcu.cc;h=34deba7e857aca5c85c8705a80d49e98e2d0791e;hp=3b495592a5f3a726d57793655af7fcd7466d7eea;hb=7a77931bb0107ba11c874485309c9f38f5bec967;hpb=f4f705b64671cdfae4d4cf8997e64a81ddce201d diff --git a/benchmark/read-copy-update/rcu.cc b/benchmark/read-copy-update/rcu.cc index 3b49559..34deba7 100644 --- a/benchmark/read-copy-update/rcu.cc +++ b/benchmark/read-copy-update/rcu.cc @@ -98,6 +98,21 @@ void write(Data *new_data) { //model_print("Write: %d\n", new_data); } +/* +Data *prev = data.load(memory_order_acquire); +bool succ = false; +Data *tmp = malloc(sizeof(Data)); +do { + tmp->data1=prev->data1+new_data->data1; + tmp->data2=prev->data2+new_data->data2; + tmp->data3=prev->data3+new_data->data3; + succ = data.compare_exchange_strong(prev, tmp, + memory_order_release, memory_order_acquire); + } while (!succ); + //model_print("Write: %d\n", new_data); +} +*/ + void threadA(void *arg) { Data *dataA = (Data*) malloc(sizeof(Data)); dataA->data1 = 3;