X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=test_rwlock.c;h=1c29d73839adaec693c53a2315c8e0cd8a2a1be0;hb=59d5a40624428364374c306409979155beddfaac;hp=76156cb01064e335b729be9458f0fdd9a0720c16;hpb=78efb485e9baa0408e8d96932a68784bc19e59a5;p=urcu.git diff --git a/test_rwlock.c b/test_rwlock.c index 76156cb..1c29d73 100644 --- a/test_rwlock.c +++ b/test_rwlock.c @@ -65,7 +65,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; @@ -127,7 +127,7 @@ void *thr_reader(void *_count) assert(test_array.a == 8); pthread_rwlock_unlock(&lock); nr_reads++; - if (!test_duration_read()) + if (unlikely(!test_duration_read())) break; } @@ -152,12 +152,13 @@ void *thr_writer(void *_count) for (;;) { pthread_rwlock_wrlock(&lock); + test_array.a = 0; test_array.a = 8; pthread_rwlock_unlock(&lock); nr_writes++; - if (!test_duration_write()) + if (unlikely(!test_duration_write())) break; - if (wdelay) + if (unlikely(wdelay)) usleep(wdelay); }