From: Mathieu Desnoyers Date: Fri, 30 Sep 2011 17:37:07 +0000 (-0400) Subject: rculfhash: do not sample in_progress_destroy in the middle of a level X-Git-Tag: v0.7.0~43^2~103 X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=commitdiff_plain;h=dc35de0cb35eb2866d5d0d7eb87c7a249ed072c9 rculfhash: do not sample in_progress_destroy in the middle of a level Caused destroy assert/segfaults. Signed-off-by: Mathieu Desnoyers --- diff --git a/rculfhash.c b/rculfhash.c index fa2121c..efb1b22 100644 --- a/rculfhash.c +++ b/rculfhash.c @@ -1097,8 +1097,6 @@ void init_table_populate_partition(struct cds_lfht *ht, unsigned long i, bit_reverse_ulong(!i ? 0 : (1UL << (i - 1)) + j); (void) _cds_lfht_add(ht, !i ? 0 : (1UL << (i - 1)), new_node, ADD_DEFAULT, 1); - if (CMM_LOAD_SHARED(ht->in_progress_destroy)) - break; } ht->cds_lfht_rcu_read_unlock(); } @@ -1200,8 +1198,6 @@ void remove_table_partition(struct cds_lfht *ht, unsigned long i, bit_reverse_ulong(!i ? 0 : (1UL << (i - 1)) + j); (void) _cds_lfht_del(ht, !i ? 0 : (1UL << (i - 1)), fini_node, 1); - if (CMM_LOAD_SHARED(ht->in_progress_destroy)) - break; } ht->cds_lfht_rcu_read_unlock(); }