X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=tests%2Ftest_urcu_hash.c;h=273283ed5b61d0535fb7281d17d4cf6cb6253aea;hb=7a9dcf9bf15667662e61b44c611a7f4c39b10dcf;hp=e77a7aad296b4fabd3a2b711737f46d25f17cec6;hpb=d837911d1b4bf6d5fc569bfdebd9fc8a3c61a6d2;p=urcu.git diff --git a/tests/test_urcu_hash.c b/tests/test_urcu_hash.c index e77a7aa..273283e 100644 --- a/tests/test_urcu_hash.c +++ b/tests/test_urcu_hash.c @@ -400,11 +400,12 @@ void *thr_reader(void *_count) for (;;) { rcu_read_lock(); node = cds_lfht_lookup(test_ht, - (void *)(unsigned long)((rand_r(&rand_lookup) % lookup_pool_size) + lookup_pool_offset), + (void *)(((unsigned long) rand_r(&rand_lookup) % lookup_pool_size) + lookup_pool_offset), sizeof(void *)); if (node == NULL) { if (validate_lookup) { printf("[ERROR] Lookup cannot find initial node.\n"); + exit(-1); } lookup_fail++; } else { @@ -464,7 +465,7 @@ void *thr_writer(void *_count) node = malloc(sizeof(struct cds_lfht_node)); rcu_read_lock(); cds_lfht_node_init(node, - (void *)(unsigned long)((rand_r(&rand_lookup) % write_pool_size) + write_pool_offset), + (void *)(((unsigned long) rand_r(&rand_lookup) % write_pool_size) + write_pool_offset), sizeof(void *)); if (add_unique) ret_node = cds_lfht_add_unique(test_ht, node); @@ -480,7 +481,7 @@ void *thr_writer(void *_count) /* May delete */ rcu_read_lock(); node = cds_lfht_lookup(test_ht, - (void *)(unsigned long)((rand_r(&rand_lookup) % write_pool_size) + write_pool_offset), + (void *)(((unsigned long) rand_r(&rand_lookup) % write_pool_size) + write_pool_offset), sizeof(void *)); if (node) ret = cds_lfht_remove(test_ht, node); @@ -544,7 +545,7 @@ static int populate_hash(void) while (nr_add < init_populate) { node = malloc(sizeof(struct cds_lfht_node)); cds_lfht_node_init(node, - (void *)(unsigned long)((rand_r(&rand_lookup) % init_pool_size) + init_pool_offset), + (void *)(((unsigned long) rand_r(&rand_lookup) % init_pool_size) + init_pool_offset), sizeof(void *)); if (add_unique) ret_node = cds_lfht_add_unique(test_ht, node); @@ -734,6 +735,12 @@ int main(int argc, char **argv) add_only ? " add only" : " add/remove", add_unique ? " uniquify" : ""); printf_verbose("Initial hash table size: %lu buckets.\n", init_hash_size); + printf_verbose("Init pool size offset %lu size %lu.\n", + init_pool_offset, init_pool_size); + printf_verbose("Lookup pool size offset %lu size %lu.\n", + lookup_pool_offset, lookup_pool_size); + printf_verbose("Update pool size offset %lu size %lu.\n", + write_pool_offset, write_pool_size); printf_verbose("thread %-6s, thread id : %lx, tid %lu\n", "main", pthread_self(), (unsigned long)gettid()); @@ -743,10 +750,7 @@ int main(int argc, char **argv) count_writer = malloc(sizeof(*count_writer) * nr_writers); test_ht = cds_lfht_new(test_hash, test_compare, 0x42UL, init_hash_size, - opt_auto_resize ? CDS_LFHT_AUTO_RESIZE : 0, - call_rcu, synchronize_rcu, rcu_read_lock, - rcu_read_unlock, rcu_thread_offline, - rcu_thread_online); + opt_auto_resize ? CDS_LFHT_AUTO_RESIZE : 0); ret = populate_hash(); assert(!ret); err = create_all_cpu_call_rcu_data(0);