Fix: There is more tests than the plan
[lttng-tools.git] / src / common / consumer.h
index 790cb6b135d9b9983a9826e4713112ad586da247..c7ef3fb38317a795b5d9f7bc394a708619108966 100644 (file)
@@ -206,6 +206,11 @@ struct lttng_consumer_channel {
 
        /* Timer value in usec for live streaming. */
        unsigned int live_timer_interval;
+
+       int *stream_fds;
+       int nr_stream_fds;
+       char root_shm_path[PATH_MAX];
+       char shm_path[PATH_MAX];
 };
 
 /*
@@ -237,6 +242,21 @@ struct lttng_consumer_stream {
        int shm_fd_is_copy;
        int data_read;
        int hangup_flush_done;
+
+       /*
+        * metadata_timer_lock protects flags waiting_on_metadata and
+        * missed_metadata_flush.
+        */
+       pthread_mutex_t metadata_timer_lock;
+       /*
+        * Flag set when awaiting metadata to be pushed. Used in the
+        * timer thread to skip waiting on the stream (and stream lock) to
+        * ensure we can proceed to flushing metadata in live mode.
+        */
+       bool waiting_on_metadata;
+       /* Raised when a timer misses a metadata flush. */
+       bool missed_metadata_flush;
+
        enum lttng_event_output output;
        /* Maximum subbuffer size. */
        unsigned long max_sb_size;
@@ -599,7 +619,9 @@ struct lttng_consumer_channel *consumer_allocate_channel(uint64_t key,
                uint64_t tracefile_count,
                uint64_t session_id_per_pid,
                unsigned int monitor,
-               unsigned int live_timer_interval);
+               unsigned int live_timer_interval,
+               const char *root_shm_path,
+               const char *shm_path);
 void consumer_del_stream(struct lttng_consumer_stream *stream,
                struct lttng_ht *ht);
 void consumer_del_metadata_stream(struct lttng_consumer_stream *stream,
@@ -609,8 +631,6 @@ int consumer_add_channel(struct lttng_consumer_channel *channel,
 void consumer_del_channel(struct lttng_consumer_channel *channel);
 
 /* lttng-relayd consumer command */
-struct consumer_relayd_sock_pair *consumer_allocate_relayd_sock_pair(
-               uint64_t net_seq_idx);
 struct consumer_relayd_sock_pair *consumer_find_relayd(uint64_t key);
 int consumer_send_relayd_stream(struct lttng_consumer_stream *stream, char *path);
 int consumer_send_relayd_streams_sent(uint64_t net_seq_idx);
This page took 0.026153 seconds and 5 git commands to generate.