X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Fbenchmark%2Ftest_urcu_wfcq.c;h=6b5e9331ab7ab2b01aaaee9a66a0d25fc5441aa0;hp=bdd5b0928fb9081ae9c312fcdde84b509dd9107d;hb=83e334d03eaba62df373cf44298616458900078a;hpb=d863e15371666dff14e7f3191de5ff91d9b24d7f diff --git a/tests/benchmark/test_urcu_wfcq.c b/tests/benchmark/test_urcu_wfcq.c index bdd5b09..6b5e933 100644 --- a/tests/benchmark/test_urcu_wfcq.c +++ b/tests/benchmark/test_urcu_wfcq.c @@ -21,8 +21,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#define _GNU_SOURCE -#include "config.h" #include #include #include @@ -77,7 +75,7 @@ static inline void loop_sleep(unsigned long loops) static int verbose_mode; static int test_dequeue, test_splice, test_wait_empty; -static int test_enqueue_stopped; +static unsigned int test_enqueue_stopped; #define printf_verbose(fmt, args...) \ do { \ @@ -260,6 +258,7 @@ static void do_test_splice(enum test_sync sync) URCU_TLS(nr_successful_dequeues)++; URCU_TLS(nr_dequeues)++; } + cds_wfcq_destroy(&tmp_head, &tmp_tail); } static void *thr_dequeuer(void *_count) @@ -358,6 +357,7 @@ int main(int argc, char **argv) tot_splice = 0, tot_dequeue_last = 0; unsigned long long end_dequeues = 0; int i, a, retval = 0; + unsigned int i_thr; if (argc < 4) { show_usage(argc, argv); @@ -375,7 +375,7 @@ int main(int argc, char **argv) show_usage(argc, argv); return -1; } - + err = sscanf(argv[3], "%lu", &duration); if (err != 1) { show_usage(argc, argv); @@ -472,15 +472,15 @@ int main(int argc, char **argv) next_aff = 0; - for (i = 0; i < nr_enqueuers; i++) { - err = pthread_create(&tid_enqueuer[i], NULL, thr_enqueuer, - &count_enqueuer[3 * i]); + for (i_thr = 0; i_thr < nr_enqueuers; i_thr++) { + err = pthread_create(&tid_enqueuer[i_thr], NULL, thr_enqueuer, + &count_enqueuer[3 * i_thr]); if (err != 0) exit(1); } - for (i = 0; i < nr_dequeuers; i++) { - err = pthread_create(&tid_dequeuer[i], NULL, thr_dequeuer, - &count_dequeuer[4 * i]); + for (i_thr = 0; i_thr < nr_dequeuers; i_thr++) { + err = pthread_create(&tid_dequeuer[i_thr], NULL, thr_dequeuer, + &count_dequeuer[4 * i_thr]); if (err != 0) exit(1); } @@ -489,10 +489,12 @@ int main(int argc, char **argv) test_go = 1; - for (i = 0; i < duration; i++) { + for (i_thr = 0; i_thr < duration; i_thr++) { sleep(1); - if (verbose_mode) - (void) write(1, ".", 1); + if (verbose_mode) { + fwrite(".", sizeof(char), 1, stdout); + fflush(stdout); + } } test_stop_enqueue = 1; @@ -508,24 +510,24 @@ int main(int argc, char **argv) test_stop_dequeue = 1; - for (i = 0; i < nr_enqueuers; i++) { - err = pthread_join(tid_enqueuer[i], &tret); + for (i_thr = 0; i_thr < nr_enqueuers; i_thr++) { + err = pthread_join(tid_enqueuer[i_thr], &tret); if (err != 0) exit(1); - tot_enqueues += count_enqueuer[3 * i]; - tot_successful_enqueues += count_enqueuer[3 * i + 1]; - tot_empty_dest_enqueues += count_enqueuer[3 * i + 2]; + tot_enqueues += count_enqueuer[3 * i_thr]; + tot_successful_enqueues += count_enqueuer[3 * i_thr + 1]; + tot_empty_dest_enqueues += count_enqueuer[3 * i_thr + 2]; } - for (i = 0; i < nr_dequeuers; i++) { - err = pthread_join(tid_dequeuer[i], &tret); + for (i_thr = 0; i_thr < nr_dequeuers; i_thr++) { + err = pthread_join(tid_dequeuer[i_thr], &tret); if (err != 0) exit(1); - tot_dequeues += count_dequeuer[4 * i]; - tot_successful_dequeues += count_dequeuer[4 * i + 1]; - tot_splice += count_dequeuer[4 * i + 2]; - tot_dequeue_last += count_dequeuer[4 * i + 3]; + tot_dequeues += count_dequeuer[4 * i_thr]; + tot_successful_dequeues += count_dequeuer[4 * i_thr + 1]; + tot_splice += count_dequeuer[4 * i_thr + 2]; + tot_dequeue_last += count_dequeuer[4 * i_thr + 3]; } - + test_end(&end_dequeues, &tot_dequeue_last); printf_verbose("total number of enqueues : %llu, dequeues %llu\n", @@ -573,9 +575,11 @@ int main(int argc, char **argv) tot_dequeue_last); retval = 1; } + cds_wfcq_destroy(&head, &tail); free(count_enqueuer); free(count_dequeuer); free(tid_enqueuer); free(tid_dequeuer); + return retval; }