struct cds_lfht_node *node)
{
struct cds_lfht_node *bucket, *next;
struct cds_lfht_node *node)
{
struct cds_lfht_node *bucket, *next;
uatomic_or_mo(node_next, REMOVED_FLAG, CMM_RELEASE);
/* We performed the (logical) deletion. */
uatomic_or_mo(node_next, REMOVED_FLAG, CMM_RELEASE);
/* We performed the (logical) deletion. */
for (j = size + start; j < size + start + len; j++) {
struct cds_lfht_node *fini_bucket = bucket_at(ht, j);
struct cds_lfht_node *parent_bucket = bucket_at(ht, j - size);
for (j = size + start; j < size + start + len; j++) {
struct cds_lfht_node *fini_bucket = bucket_at(ht, j);
struct cds_lfht_node *parent_bucket = bucket_at(ht, j - size);
urcu_posix_assert(j >= size && j < (size << 1));
dbg_printf("remove entry: order %lu index %lu hash %lu\n",
urcu_posix_assert(j >= size && j < (size << 1));
dbg_printf("remove entry: order %lu index %lu hash %lu\n",
uatomic_or(fini_bucket_next, REMOVED_FLAG);
_cds_lfht_gc_bucket(parent_bucket, fini_bucket);
}
uatomic_or(fini_bucket_next, REMOVED_FLAG);
_cds_lfht_gc_bucket(parent_bucket, fini_bucket);
}