changes with lines of spec counted
[cdsspec-compiler.git] / benchmark / read-copy-update / rcu.cc
index 3d6792f78399c13f7517a9ccdc0d8caa78fc65d9..55238821356416a592399795ebc4d98a0ae6fabd 100644 (file)
@@ -56,7 +56,7 @@ atomic<Data*> data;
 */
 Data* read() {
        Data *res = data.load(memory_order_acquire);
-       load_32(&res->data1);
+       //load_32(&res->data1);
        /**
                @Begin
                @Commit_point_define_check: true
@@ -78,16 +78,16 @@ Data* read() {
        @End
 */
 Data* write(int d1, int d2, int d3) {
-       Data *prev = data.load(memory_order_acquire);
        bool succ = false;
        Data *tmp = (Data*) malloc(sizeof(Data));
+       Data *prev = data.load(memory_order_acquire);
        do {
-        store_32(&tmp->data1, prev->data1 + d1);
-        //tmp->data1 = prev->data1 + d1;
+        //store_32(&tmp->data1, prev->data1 + d1);
+        tmp->data1 = prev->data1 + d1;
            tmp->data2 = prev->data2 + d2;
            tmp->data3 = prev->data3 + d3;
         succ = data.compare_exchange_strong(prev, tmp,
-            memory_order_acq_rel, memory_order_acquire);
+            memory_order_release, memory_order_acquire);
                /**
                        @Begin
                        @Commit_point_define_check: succ
@@ -133,13 +133,13 @@ int user_main(int argc, char **argv) {
 
        thrd_create(&t1, threadA, NULL);
        thrd_create(&t2, threadB, NULL);
-       thrd_create(&t3, threadC, NULL);
-       thrd_create(&t4, threadD, NULL);
+       //thrd_create(&t3, threadC, NULL);
+       //thrd_create(&t4, threadD, NULL);
 
        thrd_join(t1);
        thrd_join(t2);
-       thrd_join(t3);
-       thrd_join(t4);
+       //thrd_join(t3);
+       //thrd_join(t4);
 
        return 0;
 }