Fix: ambiguous ownership of kernel context by multiple channels
[lttng-tools.git] / src / bin / lttng-sessiond / trace-kernel.h
index b9bcbfa77d242d46637e229d552943819b1be371..0ac020f97d63b4d00d599ec2ee2597a8bbe44d2f 100644 (file)
@@ -64,6 +64,7 @@ struct ltt_kernel_channel {
        int enabled;
        unsigned int stream_count;
        unsigned int event_count;
+       bool published_to_notification_thread;
        struct cds_list_head ctx_list;
        struct lttng_channel *channel;
        struct ltt_kernel_event_list events_list;
@@ -71,6 +72,7 @@ struct ltt_kernel_channel {
        struct cds_list_head list;
        /* Session pointer which has a reference to this object. */
        struct ltt_kernel_session *session;
+       bool sent_to_consumer;
 };
 
 /* Metadata */
@@ -84,6 +86,7 @@ struct ltt_kernel_stream {
        int fd;
        int state;
        int cpu;
+       bool sent_to_consumer;
        /* Format is %s_%d respectively channel name and CPU number. */
        char name[DEFAULT_STREAM_NAME_LEN];
        uint64_t tracefile_size;
@@ -140,6 +143,8 @@ struct ltt_kernel_stream *trace_kernel_create_stream(const char *name,
                unsigned int count);
 struct ltt_kernel_context *trace_kernel_create_context(
                struct lttng_kernel_context *ctx);
+struct ltt_kernel_context *trace_kernel_copy_context(
+               struct ltt_kernel_context *ctx);
 
 /*
  * Destroy functions free() the data structure and remove from linked list if
This page took 0.023159 seconds and 4 git commands to generate.