X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Fstream.cpp;h=fbecdc55804acdc151732a17188b13fa1b969186;hb=0114db0ec2407029052eb61a0189c9b1cd64d520;hp=15800929552fe56242628a7e51a7b79bbc727920;hpb=ac497a37018f3c253d2e50397294f58d33f7f24f;p=lttng-tools.git diff --git a/src/bin/lttng-relayd/stream.cpp b/src/bin/lttng-relayd/stream.cpp index 158009295..fbecdc558 100644 --- a/src/bin/lttng-relayd/stream.cpp +++ b/src/bin/lttng-relayd/stream.cpp @@ -10,18 +10,18 @@ #define _LGPL_SOURCE #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include -#include "lttng-relayd.h" -#include "index.h" -#include "stream.h" -#include "viewer-stream.h" +#include "lttng-relayd.hpp" +#include "index.hpp" +#include "stream.hpp" +#include "viewer-stream.hpp" #include #include @@ -31,6 +31,8 @@ /* Should be called with RCU read-side lock held. */ bool stream_get(struct relay_stream *stream) { + ASSERT_RCU_READ_LOCKED(); + return urcu_ref_get_unless_zero(&stream->ref); } @@ -52,7 +54,7 @@ struct relay_stream *stream_get_by_id(uint64_t stream_id) DBG("Relay stream %" PRIu64 " not found", stream_id); goto end; } - stream = caa_container_of(node, struct relay_stream, node); + stream = lttng::utils::container_of(node, &relay_stream::node); if (!stream_get(stream)) { stream = NULL; } @@ -71,7 +73,7 @@ static void stream_complete_rotation(struct relay_stream *stream) } lttng_trace_chunk_put(stream->trace_chunk); stream->trace_chunk = stream->ongoing_rotation.value.next_trace_chunk; - stream->ongoing_rotation = (typeof(stream->ongoing_rotation)) {}; + stream->ongoing_rotation = LTTNG_OPTIONAL_INIT_UNSET; stream->completed_rotation_count++; } @@ -261,7 +263,7 @@ static int rotate_truncate_stream(struct relay_stream *stream) while (copy_bytes_left) { ssize_t io_ret; char copy_buffer[FILE_IO_STACK_BUFFER_SIZE]; - const off_t copy_size_this_pass = std::min(copy_bytes_left, sizeof(copy_buffer)); + const off_t copy_size_this_pass = std::min(copy_bytes_left, sizeof(copy_buffer)); io_ret = fs_handle_read(previous_stream_file, copy_buffer, copy_size_this_pass); @@ -578,7 +580,7 @@ struct relay_stream *stream_create(struct ctf_trace *trace, bool acquired_reference = false; struct lttng_trace_chunk *current_trace_chunk; - stream = (relay_stream *) zmalloc(sizeof(struct relay_stream)); + stream = zmalloc(); if (stream == NULL) { PERROR("relay stream zmalloc"); goto error_no_alloc; @@ -758,7 +760,7 @@ static void stream_destroy(struct relay_stream *stream) static void stream_destroy_rcu(struct rcu_head *rcu_head) { struct relay_stream *stream = - caa_container_of(rcu_head, struct relay_stream, rcu_node); + lttng::utils::container_of(rcu_head, &relay_stream::rcu_node); stream_destroy(stream); } @@ -770,7 +772,7 @@ static void stream_destroy_rcu(struct rcu_head *rcu_head) static void stream_release(struct urcu_ref *ref) { struct relay_stream *stream = - caa_container_of(ref, struct relay_stream, ref); + lttng::utils::container_of(ref, &relay_stream::ref); struct relay_session *session; session = stream->trace->session;