X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=rculfhash.c;h=cd25d336aea3ef781456c046699ef86e2de81b92;hb=d933dd0e116eceb59b1df0f223e3962a1e51bfb3;hp=0c2b3abbb4915910cb408546c018581e900725f1;hpb=7de5ccfde331d6a8da047b6be30330498b143e15;p=urcu.git diff --git a/rculfhash.c b/rculfhash.c index 0c2b3ab..cd25d33 100644 --- a/rculfhash.c +++ b/rculfhash.c @@ -566,12 +566,6 @@ void ht_count_add(struct cds_lfht *ht, unsigned long size) if ((count >> CHAIN_LEN_RESIZE_THRESHOLD) < size) return; dbg_printf("add set global %ld\n", count); - /* - * Don't resize table if the number of nodes is below a - * certain threshold. - */ - if (count < (1UL << COUNT_COMMIT_ORDER)) - return; cds_lfht_resize_lazy_count(ht, size, count >> (CHAIN_LEN_TARGET - 1)); } @@ -602,10 +596,10 @@ void ht_count_del(struct cds_lfht *ht, unsigned long size) return; dbg_printf("del set global %ld\n", count); /* - * Don't resize table if the number of nodes is below a + * Don't shrink table if the number of nodes is below a * certain threshold. */ - if (count < (1UL << COUNT_COMMIT_ORDER)) + if (count < (1UL << COUNT_COMMIT_ORDER) * (nr_cpus_mask + 1)) return; cds_lfht_resize_lazy_count(ht, size, count >> (CHAIN_LEN_TARGET - 1)); @@ -1458,10 +1452,10 @@ int cds_lfht_destroy(struct cds_lfht *ht, pthread_attr_t **attr) } void cds_lfht_count_nodes(struct cds_lfht *ht, - unsigned long *approx_before, + long *approx_before, unsigned long *count, unsigned long *removed, - unsigned long *approx_after) + long *approx_after) { struct cds_lfht_node *node, *next; struct _cds_lfht_node *lookup;