* Lai Jiangshan ([email protected]) wrote: > Signed-off-by: Lai Jiangshan <[email protected]> > --- > rculfhash.c | 8 ++------ > 1 files changed, 2 insertions(+), 6 deletions(-) > > diff --git a/rculfhash.c b/rculfhash.c > index 1c859ed..f901ded 100644 > --- a/rculfhash.c > +++ b/rculfhash.c > @@ -850,7 +850,7 @@ struct cds_lfht_node *_cds_lfht_add(struct cds_lfht *ht, > enum add_mode mode, int dummy) > { > struct cds_lfht_node *iter_prev, *iter, *next, *new_node, *new_next, > - *dummy_node, *return_node; > + *return_node; > struct _cds_lfht_node *lookup; > > assert(!is_dummy(node)); > @@ -919,7 +919,7 @@ struct cds_lfht_node *_cds_lfht_add(struct cds_lfht *ht, > return_node = NULL; > else /* ADD_DEFAULT and ADD_UNIQUE */ > return_node = node; > - goto gc_end; > + goto end; > } > > replace: > @@ -941,10 +941,6 @@ struct cds_lfht_node *_cds_lfht_add(struct cds_lfht *ht, > (void) uatomic_cmpxchg(&iter_prev->p.next, iter, new_next); > /* retry */ > } > -gc_end: > - /* Garbage collect logically removed nodes in the bucket */ > - dummy_node = (struct cds_lfht_node *) lookup; > - _cds_lfht_gc_bucket(dummy_node, node);
See my comment in reply to the previous patch which explains that this gc_end is needed to deal with concurrent removals+resizes. Thanks, Mathieu > end: > return return_node; > } > -- > 1.7.4.4 > -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com _______________________________________________ ltt-dev mailing list [email protected] http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
