static int wdelay;
-static struct test_array test_array = { 8 };
+static volatile struct test_array test_array = { 8 };
static unsigned long duration;
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;
}
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);
}