save
[cdsspec-compiler.git] / benchmark / read-copy-update / rcu.cc
index 3b495592a5f3a726d57793655af7fcd7466d7eea..34deba7e857aca5c85c8705a80d49e98e2d0791e 100644 (file)
@@ -98,6 +98,21 @@ void write(Data *new_data) {
        //model_print("Write: %d\n", 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;
 void threadA(void *arg) {
        Data *dataA = (Data*) malloc(sizeof(Data));
        dataA->data1 = 3;