X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=tests%2Ftest_qsbr.c;h=99da27c6a97564c5c015ee34b08174cd99ccde28;hb=61e0e50630c2550cfdfd978740893b5df1779c30;hp=f3550a0be5902911549892fbf87974eb7c139480;hpb=a50a7b4333a5039f1471c0b7cfbfb3d6dc5379fb;p=urcu.git diff --git a/tests/test_qsbr.c b/tests/test_qsbr.c index f3550a0..99da27c 100644 --- a/tests/test_qsbr.c +++ b/tests/test_qsbr.c @@ -3,7 +3,7 @@ * * Userspace RCU library - test program * - * Copyright February 2009 - Mathieu Desnoyers + * Copyright February 2009 - Mathieu Desnoyers * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -83,7 +83,7 @@ static unsigned long wduration; static inline void loop_sleep(unsigned long l) { while(l-- != 0) - cpu_relax(); + caa_cpu_relax(); } static int verbose_mode; @@ -230,7 +230,7 @@ void *thr_reader(void *_count) while (!test_go) { } - smp_mb(); + cmm_smp_mb(); for (;;) { rcu_read_lock(); @@ -251,6 +251,10 @@ void *thr_reader(void *_count) rcu_unregister_thread(); + /* test extra thread registration */ + rcu_register_thread(); + rcu_unregister_thread(); + *count = nr_reads; printf_verbose("thread_end %s, thread id : %lx, tid %lu\n", "reader", pthread_self(), (unsigned long)gettid()); @@ -271,7 +275,7 @@ void *thr_writer(void *_count) while (!test_go) { } - smp_mb(); + cmm_smp_mb(); for (;;) { new = test_array_alloc(); @@ -399,7 +403,7 @@ int main(int argc, char **argv) printf_verbose("thread %-6s, thread id : %lx, tid %lu\n", "main", pthread_self(), (unsigned long)gettid()); - test_array = malloc(sizeof(*test_array) * ARRAY_SIZE); + test_array = calloc(1, sizeof(*test_array) * ARRAY_SIZE); tid_reader = malloc(sizeof(*tid_reader) * nr_readers); tid_writer = malloc(sizeof(*tid_writer) * nr_writers); count_reader = malloc(sizeof(*count_reader) * nr_readers); @@ -420,7 +424,7 @@ int main(int argc, char **argv) exit(1); } - smp_mb(); + cmm_smp_mb(); test_go = 1;