X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=rculfhash.c;h=5baa2d415b34483486ece296cb9c511ae2cf0714;hb=479c8a32f3a1c319e9e1a18692b47992d393ee38;hp=720fd0151e20ce70b31b4d5a4012f4ae2d123592;hpb=273399de2e11da5cfea7b412a4bdd904467e9126;p=urcu.git diff --git a/rculfhash.c b/rculfhash.c index 720fd01..5baa2d4 100644 --- a/rculfhash.c +++ b/rculfhash.c @@ -217,16 +217,14 @@ void _ht_gc_bucket(struct rcu_ht_node *dummy, struct rcu_ht_node *node) /* We can always skip the dummy node initially */ iter = rcu_dereference(iter_prev->next); assert(iter_prev->reverse_hash <= node->reverse_hash); - if (unlikely(!iter)) - return; for (;;) { + if (unlikely(!iter)) + return; if (clear_flag(iter)->reverse_hash > node->reverse_hash) return; next = rcu_dereference(clear_flag(iter)->next); if (is_removed(next)) break; - if (unlikely(!next)) - return; iter_prev = iter; iter = next; }