+ lttng_ht_node_init_u64(&viewer_stream->stream_n, stream->stream_handle);
+ lttng_ht_add_unique_u64(viewer_streams_ht, &viewer_stream->stream_n);
+
+ viewer_stream->index_read_fd = -1;
+ viewer_stream->read_fd = -1;
+
+ /*
+ * This is to avoid a race between the initialization of this object and
+ * the close of the given stream. If the stream is unable to find this
+ * viewer stream when closing, this copy will at least take the latest
+ * value.
+ * We also need that for the seek_last.
+ */
+ viewer_stream->total_index_received = stream->total_index_received;
+
+ /*
+ * If we never received an index for the current stream, delay
+ * the opening of the index, otherwise open it right now.
+ */
+ if (viewer_stream->tracefile_count_current ==
+ stream->tracefile_count_current &&
+ viewer_stream->total_index_received == 0) {
+ viewer_stream->index_read_fd = -1;
+ } else {