X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftrace-kernel.c;h=083add3f30f907eee80dc259b0e961f028e50ab3;hp=d6ee8e8afb23401b2420e430bdd892dd0acc714d;hb=4a171f3e17f4799d52e13d385f195fd459b8d008;hpb=e9404c27e7cc9d841785e6c4292c1add19fbc1cc diff --git a/src/bin/lttng-sessiond/trace-kernel.c b/src/bin/lttng-sessiond/trace-kernel.c index d6ee8e8af..083add3f3 100644 --- a/src/bin/lttng-sessiond/trace-kernel.c +++ b/src/bin/lttng-sessiond/trace-kernel.c @@ -181,7 +181,7 @@ struct ltt_kernel_channel *trace_kernel_create_channel( struct lttng_channel *chan) { struct ltt_kernel_channel *lkc; - struct lttng_channel_extended *extended; + struct lttng_channel_extended *extended = NULL; assert(chan); @@ -221,6 +221,7 @@ struct ltt_kernel_channel *trace_kernel_create_channel( lkc->stream_count = 0; lkc->event_count = 0; lkc->enabled = 1; + lkc->published_to_notification_thread = false; /* Init linked list */ CDS_INIT_LIST_HEAD(&lkc->events_list.head); CDS_INIT_LIST_HEAD(&lkc->stream_list.head); @@ -522,10 +523,13 @@ void trace_kernel_destroy_channel(struct ltt_kernel_channel *channel) /* Remove from channel list */ cds_list_del(&channel->list); - status = notification_thread_command_remove_channel( - notification_thread_handle, - channel->fd, LTTNG_DOMAIN_KERNEL); - assert(status == LTTNG_OK); + if (notification_thread_handle + && channel->published_to_notification_thread) { + status = notification_thread_command_remove_channel( + notification_thread_handle, + channel->fd, LTTNG_DOMAIN_KERNEL); + assert(status == LTTNG_OK); + } free(channel->channel->attr.extended.ptr); free(channel->channel); free(channel);