X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fhashtable%2Frculfhash.h;h=adb5d9d4fe41b82993ec0da288c9e186029ca2c9;hb=49e614cb2878f0664c9f44f9f24cb1d81116de21;hp=b079c08e6799b933ec9183053508ea8e50480971;hpb=dc359c0cbcd011f35521248c2e9db16785277c26;p=lttng-tools.git diff --git a/src/common/hashtable/rculfhash.h b/src/common/hashtable/rculfhash.h index b079c08e6..adb5d9d4f 100644 --- a/src/common/hashtable/rculfhash.h +++ b/src/common/hashtable/rculfhash.h @@ -178,6 +178,8 @@ struct cds_lfht *cds_lfht_new(unsigned long init_size, * * Return 0 on success, negative error value on error. * Threads calling this API need to be registered RCU read-side threads. + * cds_lfht_destroy should *not* be called from a RCU read-side critical + * section. */ int cds_lfht_destroy(struct cds_lfht *ht, pthread_attr_t **attr); @@ -427,6 +429,8 @@ int cds_lfht_is_node_deleted(struct cds_lfht_node *node); * * Threads calling this API need to be registered RCU read-side threads. * This function does not (necessarily) issue memory barriers. + * cds_lfht_resize should *not* be called from a RCU read-side critical + * section. */ void cds_lfht_resize(struct cds_lfht *ht, unsigned long new_size); @@ -454,7 +458,7 @@ void cds_lfht_resize(struct cds_lfht *ht, unsigned long new_size); for (cds_lfht_first(ht, iter), \ pos = caa_container_of(cds_lfht_iter_get_node(iter), \ __typeof__(*(pos)), member); \ - &(pos)->member != NULL; \ + cds_lfht_iter_get_node(iter) != NULL; \ cds_lfht_next(ht, iter), \ pos = caa_container_of(cds_lfht_iter_get_node(iter), \ __typeof__(*(pos)), member)) @@ -464,7 +468,7 @@ void cds_lfht_resize(struct cds_lfht *ht, unsigned long new_size); for (cds_lfht_lookup(ht, hash, match, key, iter), \ pos = caa_container_of(cds_lfht_iter_get_node(iter), \ __typeof__(*(pos)), member); \ - &(pos)->member != NULL; \ + cds_lfht_iter_get_node(iter) != NULL; \ cds_lfht_next_duplicate(ht, match, key, iter), \ pos = caa_container_of(cds_lfht_iter_get_node(iter), \ __typeof__(*(pos)), member))