rculfhash,test: add memory_backend argument
[urcu.git] / rculfhash.c
index dd49c500db4aa8fa77b859101b3e021ed6ecb96b..6c648f17da8a939d22894067eb1cc8c24620a8e0 100644 (file)
@@ -242,15 +242,6 @@ struct partition_resize_work {
                    unsigned long start, unsigned long len);
 };
 
-static
-void _cds_lfht_add(struct cds_lfht *ht,
-               cds_lfht_match_fct match,
-               const void *key,
-               unsigned long size,
-               struct cds_lfht_node *node,
-               struct cds_lfht_iter *unique_ret,
-               int bucket);
-
 /*
  * Algorithm to reverse bits in a word by lookup table, extended to
  * 64-bit words.
@@ -549,7 +540,7 @@ void ht_count_add(struct cds_lfht *ht, unsigned long size, unsigned long hash)
        dbg_printf("add split count %lu\n", split_count);
        count = uatomic_add_return(&ht->count,
                                   1UL << COUNT_COMMIT_ORDER);
-       if (likely(count & (count - 1)))
+       if (caa_likely(count & (count - 1)))
                return;
        /* Only if global count is power of 2 */
 
@@ -578,7 +569,7 @@ void ht_count_del(struct cds_lfht *ht, unsigned long size, unsigned long hash)
        dbg_printf("del split count %lu\n", split_count);
        count = uatomic_add_return(&ht->count,
                                   -(1UL << COUNT_COMMIT_ORDER));
-       if (likely(count & (count - 1)))
+       if (caa_likely(count & (count - 1)))
                return;
        /* Only if global count is power of 2 */
 
@@ -1158,6 +1149,11 @@ void remove_table(struct cds_lfht *ht, unsigned long i, unsigned long len)
        partition_resize_helper(ht, i, len, remove_table_partition);
 }
 
+/*
+ * fini_table() is never called for first_order == 0, which is why
+ * free_by_rcu_order == 0 can be used as criterion to know if free must
+ * be called.
+ */
 static
 void fini_table(struct cds_lfht *ht,
                unsigned long first_order, unsigned long last_order)
This page took 0.023339 seconds and 4 git commands to generate.