Fix: sessiond: size-based rotation threshold exceeded in per-pid tracing (2/2)
[lttng-tools.git] / src / common / consumer / consumer.hpp
index 2c16ae1fac051edf432dde8cbca73aa8ffa3bba9..fb7f59bb21883ec8c8888c1069ab66020b548d45 100644 (file)
@@ -253,6 +253,7 @@ struct lttng_consumer_channel {
        uint64_t lost_packets;
 
        bool streams_sent_to_relayd;
+       uint64_t last_consumed_size_sample_sent;
 };
 
 struct stream_subbuffer {
@@ -449,7 +450,11 @@ struct lttng_consumer_stream {
        /* Amount of bytes written to the output */
        uint64_t output_written;
        int shm_fd_is_copy;
-       int data_read;
+       /*
+        * When a stream's pipe is hung up, a final flush is performed (see hangup_flush_done). This
+        * indicates whether or not the data resulting from this flush is still to be consumed.
+        */
+       int has_data_left_to_be_read_before_teardown;
        int hangup_flush_done;
 
        /*
@@ -1081,5 +1086,6 @@ enum lttcomm_return_code lttng_consumer_open_channel_packets(
                struct lttng_consumer_channel *channel);
 int consumer_metadata_wakeup_pipe(const struct lttng_consumer_channel *channel);
 void lttng_consumer_sigbus_handle(void *addr);
+void sample_and_send_channel_buffer_stats(struct lttng_consumer_channel *channel);
 
 #endif /* LIB_CONSUMER_H */
This page took 0.023435 seconds and 4 git commands to generate.