X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fhashtable%2Frculfhash.h;h=adb5d9d4fe41b82993ec0da288c9e186029ca2c9;hb=29c62722c4e1146fe6e7585308f3e4497e39e908;hp=d6cb34ab445630cdc20174b7f346deab57ddf69c;hpb=cd5376da8a99eaaa06a288c43e18ee852e2d49f2;p=lttng-tools.git diff --git a/src/common/hashtable/rculfhash.h b/src/common/hashtable/rculfhash.h index d6cb34ab4..adb5d9d4f 100644 --- a/src/common/hashtable/rculfhash.h +++ b/src/common/hashtable/rculfhash.h @@ -26,6 +26,8 @@ * Include this file _after_ including your URCU flavor. */ +#include "hashtable-symbols.h" + #include #include #include @@ -176,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); @@ -425,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); @@ -452,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)) @@ -462,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))