X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=rculfhash.c;h=a7e751bd29c34b04a2f9523a4718c433fff6cd89;hb=b4cb483f1a9fd9e1a1c465ab6f5fc44176252d7c;hp=b9c184fcc5f22e0e3043dd7f8b2c8a3ad2f6756f;hpb=83beee94416bdffdec505bc33cfd79859f6aa243;p=urcu.git diff --git a/rculfhash.c b/rculfhash.c index b9c184f..a7e751b 100644 --- a/rculfhash.c +++ b/rculfhash.c @@ -748,6 +748,7 @@ void _cds_lfht_gc_bucket(struct cds_lfht_node *dummy, struct cds_lfht_node *node iter_prev = dummy; /* We can always skip the dummy node initially */ iter = rcu_dereference(iter_prev->p.next); + assert(!is_removed(iter)); assert(iter_prev->p.reverse_hash <= node->p.reverse_hash); /* * We should never be called with dummy (start of chain) @@ -772,8 +773,6 @@ void _cds_lfht_gc_bucket(struct cds_lfht_node *dummy, struct cds_lfht_node *node new_next = flag_dummy(clear_flag(next)); else new_next = clear_flag(next); - if (is_removed(iter)) - new_next = flag_removed(new_next); (void) uatomic_cmpxchg(&iter_prev->p.next, iter, new_next); } return;