Fix tests: use of uninitialized variables
[urcu.git] / tests / test_urcu_wfq.c
index f26708baf3602816c7fae44a486c3f68ea352d7b..382a1f6f38abb54926b1d0d0a563ca6564999f01 100644 (file)
 #include <urcu/arch.h>
 #include <urcu/tls-compat.h>
 #include "cpuset.h"
-
-#ifdef __linux__
-#include <syscall.h>
-#endif
+#include "thread-id.h"
 
 /* hardcoded number of CPUs */
 #define NR_CPUS 16384
 
-#if defined(_syscall0)
-_syscall0(pid_t, gettid)
-#elif defined(__NR_gettid)
-static inline pid_t gettid(void)
-{
-       return syscall(__NR_gettid);
-}
-#else
-#warning "use pid as tid"
-static inline pid_t gettid(void)
-{
-       return getpid();
-}
-#endif
-
 #ifndef DYNAMIC_LINK_TEST
 #define _LGPL_SOURCE
 #endif
@@ -162,9 +144,8 @@ void *thr_enqueuer(void *_count)
 {
        unsigned long long *count = _count;
 
-       printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n",
-                       "enqueuer", (unsigned long) pthread_self(),
-                       (unsigned long) gettid());
+       printf_verbose("thread_begin %s, tid %lu\n",
+                       "enqueuer", urcu_get_thread_id());
 
        set_affinity();
 
@@ -191,11 +172,11 @@ fail:
 
        count[0] = URCU_TLS(nr_enqueues);
        count[1] = URCU_TLS(nr_successful_enqueues);
-       printf_verbose("enqueuer thread_end, thread id : %lx, tid %lu, "
-                      "enqueues %llu successful_enqueues %llu\n",
-                      pthread_self(),
-                       (unsigned long) gettid(),
-                      URCU_TLS(nr_enqueues), URCU_TLS(nr_successful_enqueues));
+       printf_verbose("enqueuer thread_end, tid %lu, "
+                       "enqueues %llu successful_enqueues %llu\n",
+                       urcu_get_thread_id(),
+                       URCU_TLS(nr_enqueues),
+                       URCU_TLS(nr_successful_enqueues));
        return ((void*)1);
 
 }
@@ -204,9 +185,8 @@ void *thr_dequeuer(void *_count)
 {
        unsigned long long *count = _count;
 
-       printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n",
-                       "dequeuer", (unsigned long) pthread_self(),
-                       (unsigned long) gettid());
+       printf_verbose("thread_begin %s, tid %lu\n",
+                       "dequeuer", urcu_get_thread_id());
 
        set_affinity();
 
@@ -230,11 +210,11 @@ void *thr_dequeuer(void *_count)
                        loop_sleep(rduration);
        }
 
-       printf_verbose("dequeuer thread_end, thread id : %lx, tid %lu, "
-                      "dequeues %llu, successful_dequeues %llu\n",
-                      pthread_self(),
-                       (unsigned long) gettid(),
-                      URCU_TLS(nr_dequeues), URCU_TLS(nr_successful_dequeues));
+       printf_verbose("dequeuer thread_end, tid %lu, "
+                       "dequeues %llu, successful_dequeues %llu\n",
+                       urcu_get_thread_id(),
+                       URCU_TLS(nr_dequeues),
+                       URCU_TLS(nr_successful_dequeues));
        count[0] = URCU_TLS(nr_dequeues);
        count[1] = URCU_TLS(nr_successful_dequeues);
        return ((void*)2);
@@ -255,11 +235,13 @@ void test_end(struct cds_wfq_queue *q, unsigned long long *nr_dequeues)
 
 void show_usage(int argc, char **argv)
 {
-       printf("Usage : %s nr_dequeuers nr_enqueuers duration (s)", argv[0]);
-       printf(" [-d delay] (enqueuer period (in loops))");
-       printf(" [-c duration] (dequeuer period (in loops))");
-       printf(" [-v] (verbose output)");
-       printf(" [-a cpu#] [-a cpu#]... (affinity)");
+       printf("Usage : %s nr_dequeuers nr_enqueuers duration (s) <OPTIONS>\n",
+               argv[0]);
+       printf("OPTIONS:\n");
+       printf("        [-d delay] (enqueuer period (in loops))\n");
+       printf("        [-c duration] (dequeuer period (in loops))\n");
+       printf("        [-v] (verbose output)\n");
+       printf("        [-a cpu#] [-a cpu#]... (affinity)\n");
        printf("\n");
 }
 
@@ -337,14 +319,13 @@ int main(int argc, char **argv)
                       duration, nr_enqueuers, nr_dequeuers);
        printf_verbose("Writer delay : %lu loops.\n", rduration);
        printf_verbose("Reader duration : %lu loops.\n", wdelay);
-       printf_verbose("thread %-6s, thread id : %lx, tid %lu\n",
-                       "main", (unsigned long) pthread_self(),
-                       (unsigned long) gettid());
-
-       tid_enqueuer = malloc(sizeof(*tid_enqueuer) * nr_enqueuers);
-       tid_dequeuer = malloc(sizeof(*tid_dequeuer) * nr_dequeuers);
-       count_enqueuer = malloc(2 * sizeof(*count_enqueuer) * nr_enqueuers);
-       count_dequeuer = malloc(2 * sizeof(*count_dequeuer) * nr_dequeuers);
+       printf_verbose("thread %-6s, tid %lu\n",
+                       "main", urcu_get_thread_id());
+
+       tid_enqueuer = calloc(nr_enqueuers, sizeof(*tid_enqueuer));
+       tid_dequeuer = calloc(nr_dequeuers, sizeof(*tid_dequeuer));
+       count_enqueuer = calloc(nr_enqueuers, 2 * sizeof(*count_enqueuer));
+       count_dequeuer = calloc(nr_dequeuers, 2 * sizeof(*count_dequeuer));
        cds_wfq_init(&q);
 
        next_aff = 0;
This page took 0.02454 seconds and 4 git commands to generate.