uint64_t lost_packets;
bool streams_sent_to_relayd;
+ uint64_t last_consumed_size_sample_sent;
+
+ int trace_format;
};
struct stream_subbuffer {
*
* Stream and channel locks are acquired during this call.
*/
-typedef int (*pre_consume_subbuffer_cb)(struct lttng_consumer_stream *,
- const struct stream_subbuffer *);
+typedef int (*pre_consume_subbuffer_cb)(struct lttng_consumer_stream *, struct stream_subbuffer *);
/*
* Consume subbuffer contents.
/* 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;
/*
unsigned int live_timer_interval,
bool is_in_live_session,
const char *root_shm_path,
- const char *shm_path);
+ const char *shm_path,
+ int trace_format);
void consumer_del_stream(struct lttng_consumer_stream *stream,
struct lttng_ht *ht);
void consumer_del_metadata_stream(struct lttng_consumer_stream *stream,
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 */