struct cds_ja_node *ja_node;
uint64_t key;
- printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n",
- "reader", pthread_self(), (unsigned long) gettid());
+ printf_verbose("thread_begin %s, tid %lu\n",
+ "reader", urcu_get_thread_id());
+
+ URCU_TLS(rand_lookup) = urcu_get_thread_id() ^ time(NULL);
set_affinity();
rcu_unregister_thread();
*count = URCU_TLS(nr_reads);
- printf_verbose("thread_end %s, thread id : %lx, tid %lu\n",
- "reader", pthread_self(), (unsigned long) gettid());
+ printf_verbose("thread_end %s, tid %lu\n",
+ "reader", urcu_get_thread_id());
printf_verbose("readid : %lx, lookupfail %lu, lookupok %lu\n",
pthread_self(), URCU_TLS(lookup_fail),
URCU_TLS(lookup_ok));
uint64_t key;
int ret;
- printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n",
- "writer", pthread_self(), (unsigned long) gettid());
+ printf_verbose("thread_begin %s, tid %lu\n",
+ "writer", urcu_get_thread_id());
+
+ URCU_TLS(rand_lookup) = urcu_get_thread_id() ^ time(NULL);
set_affinity();
rcu_unregister_thread();
- printf_verbose("thread_end %s, thread id : %lx, tid %lu\n",
- "writer", pthread_self(), (unsigned long) gettid());
+ printf_verbose("thread_end %s, tid %lu\n",
+ "writer", urcu_get_thread_id());
printf_verbose("info id %lx: nr_add %lu, nr_addexist %lu, nr_del %lu, "
"nr_delnoent %lu\n", pthread_self(), URCU_TLS(nr_add),
URCU_TLS(nr_addexist), URCU_TLS(nr_del),
URCU_TLS(nr_add)++;
URCU_TLS(nr_writes)++;
rcu_read_unlock();
+ /* Hash table resize only occurs in call_rcu thread */
+ if (!(iter % 100))
+ rcu_quiescent_state();
if (ret) {
fprintf(stderr, "Error (%d) adding node %" PRIu64 "\n",
ret, key);
printf_verbose("Validating lookups.\n");
if (leak_detection)
printf_verbose("Memory leak dection activated.\n");
- printf_verbose("thread %-6s, thread id : %lx, tid %lu\n",
- "main", pthread_self(), (unsigned long)gettid());
+ printf_verbose("thread %-6s, tid %lu\n",
+ "main", urcu_get_thread_id());
memset(&act, 0, sizeof(act));
ret = sigemptyset(&act.sa_mask);