X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu%2Frculfhash.h;h=004c20817b8585e1cecc21f37068b8725b8a5d43;hp=96dc5a023aa6d4958b24bf316269463ed114b62a;hb=1f67ba508705ff89b0048c9091e94efa938cac71;hpb=2e79c44597547799d9501940b660f676a559b738 diff --git a/urcu/rculfhash.h b/urcu/rculfhash.h index 96dc5a0..004c208 100644 --- a/urcu/rculfhash.h +++ b/urcu/rculfhash.h @@ -214,7 +214,8 @@ void cds_lfht_lookup(struct cds_lfht *ht, unsigned long hash, * @key: the current node key. * @iter: Node, if found (output). *iter->node set to NULL if not found. * - * Uses an iterator initialized by a lookup. + * Uses an iterator initialized by a lookup. Important: the iterator + * _needs_ to be initialized before calling cds_lfht_next_duplicate. * Sets *iter-node to the following node with same key. * Sets *iter->node to NULL if no following node exists with same key. * RCU read-side lock must be held across cds_lfht_lookup and @@ -322,7 +323,7 @@ struct cds_lfht_node *cds_lfht_add_replace(struct cds_lfht *ht, struct cds_lfht_node *node); /* - * cds_lfht_replace - replace a node pointer to by iter within hash table. + * cds_lfht_replace - replace a node pointed to by iter within hash table. * @ht: the hash table. * @old_iter: the iterator position of the node to replace. * @hash: the node's hash. @@ -380,6 +381,20 @@ int cds_lfht_replace(struct cds_lfht *ht, */ int cds_lfht_del(struct cds_lfht *ht, struct cds_lfht_node *node); +/* + * cds_lfht_is_node_deleted - query if a node is removed from hash table. + * + * Return non-zero if the node is deleted from the hash table, 0 + * otherwise. + * Node can be looked up with cds_lfht_lookup and cds_lfht_next, + * followed by use of cds_lfht_iter_get_node. + * RCU read-side lock must be held between lookup and call to this + * function. + * Call with rcu_read_lock held. + * Threads calling this API need to be registered RCU read-side threads. + */ +int cds_lfht_is_node_deleted(struct cds_lfht_node *node); + /* * cds_lfht_resize - Force a hash table resize * @ht: the hash table.