relay: use urcu_ref_get_unless_zero
[lttng-tools.git] / src / bin / lttng-relayd / viewer-stream.h
index cc46db4e2a3545cb283ddb5c3260001bcf82d320..3d9b076b75f533bf849e6eb6104fa33307d11f32 100644 (file)
@@ -45,24 +45,28 @@ struct relay_stream;
  */
 struct relay_viewer_stream {
        struct urcu_ref ref;
-       pthread_mutex_t reflock;
 
        /* Back ref to stream. */
        struct relay_stream *stream;
 
        /* FD from which to read the stream data. */
        struct stream_fd *stream_fd;
-       /* FD from which to read the index data. */
-       struct stream_fd *index_fd;
+       /* index file from which to read the index data. */
+       struct lttng_index_file *index_file;
 
        char *path_name;
        char *channel_name;
 
        uint64_t current_tracefile_id;
-       /* Free-running counter. */
-       uint64_t current_tracefile_seq;
 
-       uint64_t last_sent_index;
+       /*
+        * Counts the number of sent indexes. The "tag" associated
+        * with an index to send is the current index_received_seqcount,
+        * because we increment index_received_seqcount after sending
+        * each index. This index_received_seqcount counter can also be
+        * updated when catching up with the producer.
+        */
+       uint64_t index_sent_seqcount;
 
        /* Indicates if this stream has been sent to a viewer client. */
        bool sent_flag;
This page took 0.024312 seconds and 4 git commands to generate.