X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fconsumer.h;h=aef7f560e4dcae78e62343eae1492de6ea85434b;hb=3d229795de7f38cce87d6d5ea76ef413dbb71f1d;hp=4831ce898b9da360bd14c33bc6956ccb14b81272;hpb=309167d2a6f59d0c8cbf64eb23ba912cdea76a34;p=lttng-tools.git diff --git a/src/common/consumer.h b/src/common/consumer.h index 4831ce898..aef7f560e 100644 --- a/src/common/consumer.h +++ b/src/common/consumer.h @@ -156,11 +156,16 @@ struct lttng_consumer_channel { /* Metadata cache is metadata channel */ struct consumer_metadata_cache *metadata_cache; - /* For metadata periodical flush */ + /* For UST metadata periodical flush */ int switch_timer_enabled; timer_t switch_timer; int switch_timer_error; + /* For the live mode */ + int live_timer_enabled; + timer_t live_timer; + int live_timer_error; + /* On-disk circular buffer */ uint64_t tracefile_size; uint64_t tracefile_count; @@ -197,6 +202,9 @@ struct lttng_consumer_channel { * This is nested OUTSIDE consumer_relayd_sock_pair lock. */ pthread_mutex_t timer_lock; + + /* Timer value in usec for live streaming. */ + unsigned int live_timer_interval; }; /* @@ -326,6 +334,12 @@ struct lttng_consumer_stream { * FD of the index file for this stream. */ int index_fd; + + /* + * Rendez-vous point between data and metadata stream in live mode. + */ + pthread_cond_t metadata_rdv; + pthread_mutex_t metadata_rdv_lock; }; /* @@ -564,7 +578,8 @@ struct lttng_consumer_channel *consumer_allocate_channel(uint64_t key, uint64_t tracefile_size, uint64_t tracefile_count, uint64_t session_id_per_pid, - unsigned int monitor); + unsigned int monitor, + unsigned int live_timer_interval); void consumer_del_stream(struct lttng_consumer_stream *stream, struct lttng_ht *ht); void consumer_del_metadata_stream(struct lttng_consumer_stream *stream, @@ -618,7 +633,7 @@ int lttng_consumer_on_recv_stream(struct lttng_consumer_stream *stream); int consumer_add_relayd_socket(uint64_t net_seq_idx, int sock_type, struct lttng_consumer_local_data *ctx, int sock, struct pollfd *consumer_sockpoll, struct lttcomm_relayd_sock *relayd_sock, - uint64_t sessiond_id); + uint64_t sessiond_id, uint64_t relayd_session_id); void consumer_flag_relayd_for_destroy( struct consumer_relayd_sock_pair *relayd); int consumer_data_pending(uint64_t id);