X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Fmain.c;h=a6b408a90740943138e43ad69160d34a5395baa6;hp=b8e2f72e6706bc194be2d095ddca89f65abb0dca;hb=157df58664846e22bdeea84dfcf717cb43360b3f;hpb=c9d04d7963a60a3a78bf6304e951477621a0c62b diff --git a/src/bin/lttng-relayd/main.c b/src/bin/lttng-relayd/main.c index b8e2f72e6..a6b408a90 100644 --- a/src/bin/lttng-relayd/main.c +++ b/src/bin/lttng-relayd/main.c @@ -800,8 +800,6 @@ void deferred_free_stream(struct rcu_head *head) struct relay_stream *stream = caa_container_of(head, struct relay_stream, rcu_node); - ctf_trace_try_destroy(stream->ctf_trace); - free(stream->path_name); free(stream->channel_name); free(stream); @@ -865,6 +863,11 @@ static void destroy_stream(struct relay_stream *stream) iter.iter.node = &stream->ctf_trace_node.node; delret = lttng_ht_del(stream->ctf_traces_ht, &iter); assert(!delret); + + if (stream->ctf_trace) { + ctf_trace_try_destroy(stream->ctf_trace); + } + call_rcu(&stream->rcu_node, deferred_free_stream); DBG("Closed tracefile %d from close stream", stream->fd); }