Fix: consumer should await for initial streams
[lttng-tools.git] / src / common / consumer.h
index 4da4b70d1496647e17c65afe06ae2d9889297ce4..0f82a10865f18b2960900db6e937b3768618d1d0 100644 (file)
@@ -77,6 +77,12 @@ struct lttng_consumer_channel {
        int key;
        uint64_t max_sb_size; /* the subbuffer size for this channel */
        int refcount; /* Number of streams referencing this channel */
+       /*
+        * The number of streams to receive initially. Used to guarantee that we do
+        * not destroy a channel before receiving all its associated streams.
+        */
+       unsigned int nb_init_streams;
+
        /* For UST */
        int shm_fd;
        int wait_fd;
@@ -342,17 +348,16 @@ extern struct lttng_consumer_channel *consumer_allocate_channel(
                int channel_key,
                int shm_fd, int wait_fd,
                uint64_t mmap_len,
-               uint64_t max_sb_size);
+               uint64_t max_sb_size,
+               unsigned int nb_init_streams);
 int consumer_add_channel(struct lttng_consumer_channel *channel);
 
 /* lttng-relayd consumer command */
-int consumer_add_relayd(struct consumer_relayd_sock_pair *relayd);
 struct consumer_relayd_sock_pair *consumer_allocate_relayd_sock_pair(
                int net_seq_idx);
 struct consumer_relayd_sock_pair *consumer_find_relayd(int key);
 int consumer_handle_stream_before_relayd(struct lttng_consumer_stream *stream,
                size_t data_size);
-void consumer_destroy_relayd(struct consumer_relayd_sock_pair *relayd);
 
 extern struct lttng_consumer_local_data *lttng_consumer_create(
                enum lttng_consumer_type type,
This page took 0.022807 seconds and 4 git commands to generate.