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 {
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);
/* 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);
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);
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, NULL);
ret = populate_hash();
assert(!ret);
err = create_all_cpu_call_rcu_data(0);
if (count || removed)
printf("WARNING: nodes left in the hash table upon destroy: "
"%lu nodes + %lu logically removed.\n", count, removed);
- ret = cds_lfht_destroy(test_ht);
+ ret = cds_lfht_destroy(test_ht, NULL);
if (ret)
printf_verbose("final delete aborted\n");