X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=tests%2Ftest_urcu_hash.c;h=d6464b4b1c23dfb9714acd2053f1e29eb1099bee;hb=6b262fd76774cdd6c7ec62d2a74515d9a28c2317;hp=a6139c1a2d3c9894e39051ab1b2a08f8d09b0208;hpb=59e371e3c619d7f85698bd997ac556cea49632f3;p=urcu.git diff --git a/tests/test_urcu_hash.c b/tests/test_urcu_hash.c index a6139c1..d6464b4 100644 --- a/tests/test_urcu_hash.c +++ b/tests/test_urcu_hash.c @@ -515,15 +515,15 @@ void *thr_writer(void *_count) if ((addremove == AR_ADD || add_only) || (addremove == AR_RANDOM && rand_r(&rand_lookup) & 1)) { 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), sizeof(void *)); + rcu_read_lock(); if (add_unique) { ret_node = cds_lfht_add_unique(test_ht, node); } else { if (add_replace) - ret_node = cds_lfht_replace(test_ht, node); + ret_node = cds_lfht_add_replace(test_ht, node); else cds_lfht_add(test_ht, node); } @@ -545,13 +545,10 @@ void *thr_writer(void *_count) cds_lfht_lookup(test_ht, (void *)(((unsigned long) rand_r(&rand_lookup) % write_pool_size) + write_pool_offset), sizeof(void *), &iter); - node = cds_lfht_iter_get_node(&iter); - if (node) - ret = cds_lfht_del(test_ht, node); - else - ret = -ENOENT; + ret = cds_lfht_del(test_ht, &iter); rcu_read_unlock(); if (ret == 0) { + node = cds_lfht_iter_get_node(&iter); call_rcu(&node->head, free_node_cb); nr_del++; } else @@ -615,7 +612,7 @@ static int populate_hash(void) ret_node = cds_lfht_add_unique(test_ht, node); } else { if (add_replace) - ret_node = cds_lfht_replace(test_ht, node); + ret_node = cds_lfht_add_replace(test_ht, node); else cds_lfht_add(test_ht, node); }