X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fconsumer%2Fconsumer.h;h=1c1d01de911fee38edcbb3c9c089b0f5a7b11e8c;hb=5c3892a6b0083de585509b7c71b76068b2f110bc;hp=2c927bbc2ca0b745890130ade943e15d818054e7;hpb=2c8a890846cfc88874b25d5c3c12e0fd5ce3d1da;p=lttng-tools.git diff --git a/src/common/consumer/consumer.h b/src/common/consumer/consumer.h index 2c927bbc2..1c1d01de9 100644 --- a/src/common/consumer/consumer.h +++ b/src/common/consumer/consumer.h @@ -112,6 +112,8 @@ struct consumer_metadata_cache; struct lttng_consumer_channel { /* 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 */ + struct lttng_ht_node_u64 channels_by_session_id_ht_node; /* Indexed key. Incremented value in the consumer. */ uint64_t key; /* Number of streams referencing this channel */ @@ -621,6 +623,8 @@ struct lttng_consumer_global_data { /* Channel hash table protected by consumer_data.lock. */ struct lttng_ht *channel_ht; + /* Channel hash table indexed by session id. */ + struct lttng_ht *channels_by_session_id_ht; /* * Flag specifying if the local array of FDs needs update in the * poll function. Protected by consumer_data.lock. @@ -834,14 +838,15 @@ void consumer_del_stream_for_data(struct lttng_consumer_stream *stream); void consumer_add_metadata_stream(struct lttng_consumer_stream *stream); void consumer_del_stream_for_metadata(struct lttng_consumer_stream *stream); int consumer_create_index_file(struct lttng_consumer_stream *stream); -int lttng_consumer_rotate_channel(uint64_t key, const char *path, - uint64_t relayd_id, uint32_t metadata, - uint64_t new_chunk_id, struct lttng_consumer_local_data *ctx); +int lttng_consumer_rotate_channel(struct lttng_consumer_channel *channel, + uint64_t key, const char *path, uint64_t relayd_id, + uint32_t metadata, uint64_t new_chunk_id, + struct lttng_consumer_local_data *ctx); int lttng_consumer_stream_is_rotate_ready(struct lttng_consumer_stream *stream); int lttng_consumer_rotate_stream(struct lttng_consumer_local_data *ctx, struct lttng_consumer_stream *stream, bool *rotated); -int lttng_consumer_rotate_ready_streams(uint64_t key, - struct lttng_consumer_local_data *ctx); +int lttng_consumer_rotate_ready_streams(struct lttng_consumer_channel *channel, + uint64_t key, struct lttng_consumer_local_data *ctx); int lttng_consumer_rotate_rename(const char *current_path, const char *new_path, uid_t uid, gid_t gid, uint64_t relayd_id); int lttng_consumer_check_rotation_pending_local(uint64_t session_id,