return;
percpu_count = uatomic_add_return(&ht->percpu_count[cpu].add, 1);
if (unlikely(!(percpu_count & ((1UL << COUNT_COMMIT_ORDER) - 1)))) {
- unsigned long count;
+ long count;
dbg_printf("add percpu %lu\n", percpu_count);
count = uatomic_add_return(&ht->count,
if (!(count & (count - 1))) {
if ((count >> CHAIN_LEN_RESIZE_THRESHOLD) < size)
return;
- dbg_printf("add set global %lu\n", count);
+ 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));
}
return;
percpu_count = uatomic_add_return(&ht->percpu_count[cpu].del, 1);
if (unlikely(!(percpu_count & ((1UL << COUNT_COMMIT_ORDER) - 1)))) {
- unsigned long count;
+ long count;
dbg_printf("del percpu %lu\n", percpu_count);
count = uatomic_add_return(&ht->count,
if (!(count & (count - 1))) {
if ((count >> CHAIN_LEN_RESIZE_THRESHOLD) >= size)
return;
- dbg_printf("del set global %lu\n", count);
+ dbg_printf("del 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));
}