X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Ftest_urcu_hash.c;h=d7c2fc2da4098ea37de585590564e403032fadbe;hp=3a87d483f9a15ad981b0af52e0198a70ea55db1c;hb=5f51139190536f948f9571fdf3c97cf0198356d0;hpb=151e7a93d1cb77c3f7c78370ce1eee2c6a49e690 diff --git a/tests/test_urcu_hash.c b/tests/test_urcu_hash.c index 3a87d48..d7c2fc2 100644 --- a/tests/test_urcu_hash.c +++ b/tests/test_urcu_hash.c @@ -46,6 +46,18 @@ /* hardcoded number of CPUs */ #define NR_CPUS 16384 +#ifdef POISON_FREE +#define poison_free(ptr) \ + do { \ + memset(ptr, 0x42, sizeof(*(ptr))); \ + free(ptr); \ + } while (0) +#else +#define poison_free(ptr) free(ptr) +#endif + + + #if defined(_syscall0) _syscall0(pid_t, gettid) #elif defined(__NR_gettid) @@ -704,7 +716,9 @@ int main(int argc, char **argv) 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); + call_rcu, synchronize_rcu, rcu_read_lock, + rcu_read_unlock, rcu_thread_offline, + rcu_thread_online); ret = populate_hash(); assert(!ret); err = create_all_cpu_call_rcu_data(0); @@ -774,6 +788,7 @@ int main(int argc, char **argv) nr_writers, wdelay, rand_pool, tot_reads, tot_writes, tot_reads + tot_writes, tot_add, tot_add_exist, tot_remove, (long long) tot_add + init_populate - tot_remove - count); + free_all_cpu_call_rcu_data(); free(tid_reader); free(tid_writer); free(count_reader);