struct lttng_consumer_channel {
/* Is the channel published in the channel hash tables? */
bool is_published;
+ /*
+ * Was the channel deleted (logically) and waiting to be reclaimed?
+ * If this flag is set, no modification that is not cleaned-up by the
+ * RCU reclamation callback should be made
+ */
+ bool is_deleted;
/* HT node used for consumer_data.channel_ht */
struct lttng_ht_node_u64 node;
/* HT node used for consumer_data.channels_by_session_id_ht */
* a session with per-PID buffers.
*/
uint64_t session_id_per_pid;
- /* Channel trace file path name. */
+ /*
+ * In the case of local streams, this field contains the channel's
+ * output path; a path relative to the session's output path.
+ * e.g. ust/uid/1000/64-bit
+ *
+ * In the case of remote streams, the contents of this field depends
+ * on the version of the relay daemon peer. For 2.11+ peers, the
+ * contents are the same as in the local case. However, for legacy
+ * peers, this contains a path of the form:
+ * /hostname/session_path/ust/uid/1000/64-bit
+ */
char pathname[PATH_MAX];
/* Channel name. */
char name[LTTNG_SYMBOL_NAME_LEN];
bool missed_metadata_flush;
enum lttng_event_output output;
- /* Maximum subbuffer size. */
+ /* Maximum subbuffer size (in bytes). */
unsigned long max_sb_size;
/*
struct lttng_directory_handle *chunk_directory_handle);
enum lttcomm_return_code lttng_consumer_close_trace_chunk(
const uint64_t *relayd_id, uint64_t session_id,
- uint64_t chunk_id, time_t chunk_close_timestamp);
+ uint64_t chunk_id, time_t chunk_close_timestamp,
+ const enum lttng_trace_chunk_command_type *close_command,
+ char *path);
enum lttcomm_return_code lttng_consumer_trace_chunk_exists(
const uint64_t *relayd_id, uint64_t session_id,
uint64_t chunk_id);