- printf_verbose("thread %-6s, thread id : %lx, tid %lu\n",
- "main", 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);
- cds_lfq_init_rcu(&q);
+ 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_lfq_init_rcu(&q, call_rcu);
+ err = create_all_cpu_call_rcu_data(0);
+ if (err) {
+ printf("Per-CPU call_rcu() worker threads unavailable. Using default global worker thread.\n");
+ }