static void viewer_stream_destroy(struct relay_viewer_stream *vstream)
{
- lttng_trace_chunk_put(vstream->stream_file.trace_chunk);
free(vstream->path_name);
free(vstream->channel_name);
free(vstream);
}
case LTTNG_VIEWER_SEEK_LAST:
vstream->current_tracefile_id =
- tracefile_array_get_file_index_head(stream->tfa);
+ tracefile_array_get_read_file_index_head(stream->tfa);
/*
* We seek at the very end of each stream, awaiting for
* a future packet to eventually come in.
if (vstream) {
viewer_stream_destroy(vstream);
}
- if (viewer_trace_chunk) {
+ if (viewer_trace_chunk && acquired_reference) {
lttng_trace_chunk_put(viewer_trace_chunk);
}
return NULL;
stream_put(vstream->stream);
vstream->stream = NULL;
}
-
+ lttng_trace_chunk_put(vstream->stream_file.trace_chunk);
+ vstream->stream_file.trace_chunk = NULL;
call_rcu(&vstream->rcu_node, viewer_stream_destroy_rcu);
}