Fix: sessiond: size-based rotation threshold exceeded in per-pid tracing (2/2)
[lttng-tools.git] / src / common / consumer / consumer.hpp
index 4bcfe5d9529cc6460f293dc7fbc47e0e04728e2a..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;
 
        /*
@@ -1075,11 +1080,12 @@ enum lttcomm_return_code lttng_consumer_trace_chunk_exists(
 void lttng_consumer_cleanup_relayd(struct consumer_relayd_sock_pair *relayd);
 enum lttcomm_return_code lttng_consumer_init_command(
                struct lttng_consumer_local_data *ctx,
-               const lttng_uuid sessiond_uuid);
+               const lttng_uuid& sessiond_uuid);
 int lttng_consumer_clear_channel(struct lttng_consumer_channel *channel);
 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.023422 seconds and 4 git commands to generate.