Cleanup: enable signed/unsigned compare compiler warning
[urcu.git] / tests / benchmark / test_urcu_lfs.c
index 723e4a44c8e004b9629ea8c4d769e8ec244b60e7..2f6ee25a4266c7af2372a5151144f2e9f8b526c0 100644 (file)
@@ -21,8 +21,6 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#define _GNU_SOURCE
-#include "config.h"
 #include <stdio.h>
 #include <pthread.h>
 #include <stdlib.h>
@@ -50,6 +48,8 @@
 #include <urcu.h>
 #include <urcu/cds.h>
 
+#define POISON_PTR     ((void *) 0x42UL)
+
 /*
  * External synchronization used.
  */
@@ -219,6 +219,7 @@ void do_test_pop(enum test_sync sync)
        if (snode) {
                struct test *node;
 
+               snode->next = POISON_PTR;
                node = caa_container_of(snode,
                        struct test, list);
                if (sync == TEST_SYNC_RCU)
@@ -241,6 +242,7 @@ void do_test_pop_all(enum test_sync sync)
        cds_lfs_for_each_safe(head, snode, n) {
                struct test *node;
 
+               snode->next = POISON_PTR;
                node = caa_container_of(snode, struct test, list);
                if (sync == TEST_SYNC_RCU)
                        call_rcu(&node->rcu, free_node_cb);
@@ -347,6 +349,7 @@ int main(int argc, char **argv)
                           tot_successful_dequeues = 0;
        unsigned long long end_dequeues = 0;
        int i, a;
+       unsigned int i_thr;
 
        if (argc < 4) {
                show_usage(argc, argv);
@@ -364,7 +367,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);
@@ -446,15 +449,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[2 * i]);
+       for (i_thr = 0; i_thr < nr_enqueuers; i_thr++) {
+               err = pthread_create(&tid_enqueuer[i_thr], NULL, thr_enqueuer,
+                                    &count_enqueuer[2 * 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[2 * i]);
+       for (i_thr = 0; i_thr < nr_dequeuers; i_thr++) {
+               err = pthread_create(&tid_dequeuer[i_thr], NULL, thr_dequeuer,
+                                    &count_dequeuer[2 * i_thr]);
                if (err != 0)
                        exit(1);
        }
@@ -463,29 +466,31 @@ 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 = 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[2 * i];
-               tot_successful_enqueues += count_enqueuer[2 * i + 1];
+               tot_enqueues += count_enqueuer[2 * i_thr];
+               tot_successful_enqueues += count_enqueuer[2 * i_thr + 1];
        }
-       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[2 * i];
-               tot_successful_dequeues += count_dequeuer[2 * i + 1];
+               tot_dequeues += count_dequeuer[2 * i_thr];
+               tot_successful_dequeues += count_dequeuer[2 * i_thr + 1];
        }
-       
+
        test_end(&s, &end_dequeues);
 
        printf_verbose("total number of enqueues : %llu, dequeues %llu\n",
@@ -510,9 +515,11 @@ int main(int argc, char **argv)
                       tot_successful_dequeues + end_dequeues);
 
        free_all_cpu_call_rcu_data();
+       cds_lfs_destroy(&s);
        free(count_enqueuer);
        free(count_dequeuer);
        free(tid_enqueuer);
        free(tid_dequeuer);
+
        return 0;
 }
This page took 0.024274 seconds and 4 git commands to generate.