struct ltt_kernel_context {
struct lttng_kernel_context ctx;
struct cds_list_head list;
+ /* Indicates whether or not the context is in a list. */
+ bool in_list;
};
/* Kernel event */
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;
struct cds_list_head list;
/* Session pointer which has a reference to this object. */
struct ltt_kernel_session *session;
+ bool sent_to_consumer;
};
/* Metadata */
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;
/* UID/GID of the user owning the session */
uid_t uid;
gid_t gid;
- /*
- * Two consumer_output object are needed where one is needed for the
- * current output object and the second one is the temporary object used to
- * store URI being set by the lttng_set_consumer_uri call. Once
- * lttng_enable_consumer is called, the two pointers are swapped.
- */
struct consumer_output *consumer;
- struct consumer_output *tmp_consumer;
/* Tracing session id */
uint64_t id;
/* Session is active or not meaning it has been started or stopped. */
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