X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=lttng-sessiond%2Ftrace-ust.c;h=e4a5218110d78258973868aa11925623415816ce;hp=0bfcc3bd811ddb3cc4babf55ada1d8fe2686db30;hb=24d1723f7e614f74b6957ad3f3666a5713664d63;hpb=6065ceec9574bf18eb79ae707f627322f2713d18 diff --git a/lttng-sessiond/trace-ust.c b/lttng-sessiond/trace-ust.c index 0bfcc3bd8..e4a521811 100644 --- a/lttng-sessiond/trace-ust.c +++ b/lttng-sessiond/trace-ust.c @@ -396,9 +396,8 @@ void trace_ust_destroy_channel(struct ltt_ust_channel *channel) cds_lfht_for_each_entry(channel->events->ht, &iter.iter, node, node) { ret = lttng_ht_del(channel->events, &iter); - if (!ret) { - destroy_event(channel->events); - } + assert(!ret); + destroy_event(channel->events); } destroy_context(channel->ctx); @@ -439,6 +438,8 @@ static void destroy_channels(struct lttng_ht *channels) struct lttng_ht_node_str *node; struct lttng_ht_iter iter; + rcu_read_lock(); + cds_lfht_for_each_entry(channels->ht, &iter.iter, node, node) { ret = lttng_ht_del(channels, &iter); if (!ret) { @@ -447,6 +448,8 @@ static void destroy_channels(struct lttng_ht *channels) } lttng_ht_destroy(channels); + + rcu_read_unlock(); } /*