Fix: free metadata cache after grace period in consumer
[lttng-tools.git] / src / common / consumer.h
index 7f885370e33127448edcc3cf623346d3ce1642f9..ac3b4903f6b8c3e945432b35a471100a8998aede 100644 (file)
@@ -207,6 +207,8 @@ 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];
 };
@@ -240,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;
This page took 0.0233179999999999 seconds and 4 git commands to generate.