Update comments of cds_lfht_new()
[urcu.git] / urcu / rculfhash.h
index c13d3dff91bb7d6dd77ddb81d389420347e8988a..575471992a052360643825df19ebeb7e46c34e48 100644 (file)
@@ -71,7 +71,7 @@ struct cds_lfht;
  * Ensure reader and writer threads are registered as urcu readers.
  */
 
-typedef int (*cds_lfht_match_fct)(struct cds_lfht_node *node, void *key);
+typedef int (*cds_lfht_match_fct)(struct cds_lfht_node *node, const void *key);
 
 /*
  * cds_lfht_node_init - initialize a hash table node
@@ -117,6 +117,8 @@ struct cds_lfht *_cds_lfht_new(unsigned long init_size,
  * @flags: hash table creation flags (can be combined with bitwise or: '|').
  *           0: no flags.
  *           CDS_LFHT_AUTO_RESIZE: automatically resize hash table.
+ *           CDS_LFHT_ACCOUNTING: count the number of node addition
+ *                                and removal in the table
  * @attr: optional resize worker thread attributes. NULL for default.
  *
  * Return NULL on error.
@@ -129,7 +131,8 @@ struct cds_lfht *_cds_lfht_new(unsigned long init_size,
  * this priority level. Having lower priority for call_rcu and resize threads
  * does not pose any correctness issue, but the resize operations could be
  * starved by updates, thus leading to long hash table bucket chains.
- * Threads calling this API need to be registered RCU read-side threads.
+ * Threads calling this API are NOT required to be registered RCU read-side
+ * threads. It can be called very early.(before rcu is initialized ...etc.)
  */
 static inline
 struct cds_lfht *cds_lfht_new(unsigned long init_size,
@@ -186,7 +189,7 @@ void cds_lfht_count_nodes(struct cds_lfht *ht,
  * Threads calling this API need to be registered RCU read-side threads.
  */
 void cds_lfht_lookup(struct cds_lfht *ht, unsigned long hash,
-               cds_lfht_match_fct match, void *key,
+               cds_lfht_match_fct match, const void *key,
                struct cds_lfht_iter *iter);
 
 /*
@@ -206,7 +209,7 @@ void cds_lfht_lookup(struct cds_lfht *ht, unsigned long hash,
  * Threads calling this API need to be registered RCU read-side threads.
  */
 void cds_lfht_next_duplicate(struct cds_lfht *ht,
-               cds_lfht_match_fct match, void *key,
+               cds_lfht_match_fct match, const void *key,
                struct cds_lfht_iter *iter);
 
 /*
@@ -268,7 +271,7 @@ void cds_lfht_add(struct cds_lfht *ht, unsigned long hash,
 struct cds_lfht_node *cds_lfht_add_unique(struct cds_lfht *ht,
                unsigned long hash,
                cds_lfht_match_fct match,
-               void *key,
+               const void *key,
                struct cds_lfht_node *node);
 
 /*
@@ -300,7 +303,7 @@ struct cds_lfht_node *cds_lfht_add_unique(struct cds_lfht *ht,
 struct cds_lfht_node *cds_lfht_add_replace(struct cds_lfht *ht,
                unsigned long hash,
                cds_lfht_match_fct match,
-               void *key,
+               const void *key,
                struct cds_lfht_node *node);
 
 /*
This page took 0.023867 seconds and 4 git commands to generate.