minor fix
[cdsspec-compiler.git] / benchmark / read-copy-update / rcu.cc
index 8aad9d19b56be3bfb439156f84e15ff08ec10690..ebe36a9f1a3fc924f0895f3b08c158cb6cc602ce 100644 (file)
@@ -105,6 +105,21 @@ void threadB(void *arg) {
        printf("ThreadB data3: %d\n", dataB->data3);
 }
 
+void threadC(void *arg) {
+       Data *dataC = read();
+       printf("ThreadC data1: %d\n", dataC->data1);
+       printf("ThreadC data2: %d\n", dataC->data2);
+       printf("ThreadC data3: %d\n", dataC->data3);
+}
+
+void threadD(void *arg) {
+       Data *dataD = (Data*) malloc(sizeof(Data));
+       dataD->data1 = -3;
+       dataD->data2 = -2;
+       dataD->data3 = -1;
+       write(dataD);
+}
+
 int user_main(int argc, char **argv) {
        /**
                @Begin
@@ -112,7 +127,7 @@ int user_main(int argc, char **argv) {
                @End
        */
        
-       thrd_t t1, t2;
+       thrd_t t1, t2, t3, t4;
        data.store(NULL, memory_order_relaxed);
        Data *data_init = (Data*) malloc(sizeof(Data));
        data_init->data1 = 1;
@@ -122,9 +137,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_join(t1);
        thrd_join(t2);
+       //thrd_join(t3);
+       thrd_join(t4);
 
        return 0;
 }