Unlikely for tests
[urcu.git] / test_perthreadlock.c
index 078e6594a19faeddd068a9f49e545992b1553505..3684975eebf7c85312cd3a6a2322f88af03c022c 100644 (file)
@@ -69,7 +69,7 @@ static volatile int test_go, test_stop;
 
 static int wdelay;
 
-static struct test_array test_array = { 8 };
+static volatile struct test_array test_array = { 8 };
 
 static unsigned long duration;
 
@@ -134,7 +134,7 @@ void *thr_reader(void *data)
                assert(test_array.a == 8);
                pthread_mutex_unlock(&per_thread_lock[tidx].lock);
                nr_reads++;
-               if (!test_duration_read())
+               if (unlikely(!test_duration_read()))
                        break;
        }
 
@@ -162,14 +162,15 @@ void *thr_writer(void *data)
                for (tidx = 0; tidx < nr_readers; tidx++) {
                        pthread_mutex_lock(&per_thread_lock[tidx].lock);
                }
+               test_array.a = 0;
                test_array.a = 8;
                for (tidx = nr_readers - 1; tidx >= 0; tidx--) {
                        pthread_mutex_unlock(&per_thread_lock[tidx].lock);
                }
                nr_writes++;
-               if (!test_duration_write())
+               if (unlikely(!test_duration_write()))
                        break;
-               if (wdelay)
+               if (unlikely(wdelay))
                        usleep(wdelay);
        }
 
This page took 0.023038 seconds and 4 git commands to generate.