Use compiler-agnostic defines to silence warning
[lttng-tools.git] / src / bin / lttng-relayd / stream.cpp
index 60c90bc111a44975a6b7c255879132d77810fde9..b4c1a9216fc7a32956621b6d458aee1eb32d361b 100644 (file)
@@ -18,6 +18,7 @@
 #include <common/defaults.hpp>
 #include <common/fs-handle.hpp>
 #include <common/sessiond-comm/relayd.hpp>
 #include <common/defaults.hpp>
 #include <common/fs-handle.hpp>
 #include <common/sessiond-comm/relayd.hpp>
+#include <common/urcu.hpp>
 #include <common/utils.hpp>
 
 #include <algorithm>
 #include <common/utils.hpp>
 
 #include <algorithm>
@@ -47,9 +48,9 @@ struct relay_stream *stream_get_by_id(uint64_t stream_id)
        struct lttng_ht_iter iter;
        struct relay_stream *stream = nullptr;
 
        struct lttng_ht_iter iter;
        struct relay_stream *stream = nullptr;
 
-       rcu_read_lock();
+       const lttng::urcu::read_lock_guard read_lock;
        lttng_ht_lookup(relay_streams_ht, &stream_id, &iter);
        lttng_ht_lookup(relay_streams_ht, &stream_id, &iter);
-       node = lttng_ht_iter_get_node_u64(&iter);
+       node = lttng_ht_iter_get_node<lttng_ht_node_u64>(&iter);
        if (!node) {
                DBG("Relay stream %" PRIu64 " not found", stream_id);
                goto end;
        if (!node) {
                DBG("Relay stream %" PRIu64 " not found", stream_id);
                goto end;
@@ -59,7 +60,6 @@ struct relay_stream *stream_get_by_id(uint64_t stream_id)
                stream = nullptr;
        }
 end:
                stream = nullptr;
        }
 end:
-       rcu_read_unlock();
        return stream;
 }
 
        return stream;
 }
 
@@ -473,7 +473,7 @@ end:
  */
 static int try_rotate_stream_index(struct relay_stream *stream)
 {
  */
 static int try_rotate_stream_index(struct relay_stream *stream)
 {
-       int ret = 0;
+       const int ret = 0;
 
        if (!stream->ongoing_rotation.is_set) {
                /* No rotation expected. */
 
        if (!stream->ongoing_rotation.is_set) {
                /* No rotation expected. */
@@ -807,14 +807,13 @@ static void stream_release(struct urcu_ref *ref)
 
 void stream_put(struct relay_stream *stream)
 {
 
 void stream_put(struct relay_stream *stream)
 {
-       rcu_read_lock();
+       const lttng::urcu::read_lock_guard read_lock;
        LTTNG_ASSERT(stream->ref.refcount != 0);
        /*
         * Wait until we have processed all the stream packets before
         * actually putting our last stream reference.
         */
        urcu_ref_put(&stream->ref, stream_release);
        LTTNG_ASSERT(stream->ref.refcount != 0);
        /*
         * Wait until we have processed all the stream packets before
         * actually putting our last stream reference.
         */
        urcu_ref_put(&stream->ref, stream_release);
-       rcu_read_unlock();
 }
 
 int stream_set_pending_rotation(struct relay_stream *stream,
 }
 
 int stream_set_pending_rotation(struct relay_stream *stream,
@@ -1110,9 +1109,6 @@ int stream_write(struct relay_stream *stream,
                recv_len = packet ? packet->size : 0;
                recv_len += padding_len;
                stream->metadata_received += recv_len;
                recv_len = packet ? packet->size : 0;
                recv_len += padding_len;
                stream->metadata_received += recv_len;
-               if (recv_len) {
-                       stream->no_new_metadata_notified = false;
-               }
        }
 
        DBG("Wrote to %sstream %" PRIu64 ": data_length = %zu, padding_length = %zu",
        }
 
        DBG("Wrote to %sstream %" PRIu64 ": data_length = %zu, padding_length = %zu",
@@ -1312,11 +1308,10 @@ end:
 
 static void print_stream_indexes(struct relay_stream *stream)
 {
 
 static void print_stream_indexes(struct relay_stream *stream)
 {
-       struct lttng_ht_iter iter;
-       struct relay_index *index;
-
-       rcu_read_lock();
-       cds_lfht_for_each_entry (stream->indexes_ht->ht, &iter.iter, index, index_n.node) {
+       for (auto *index :
+            lttng::urcu::lfht_iteration_adapter<relay_index,
+                                                decltype(relay_index::index_n),
+                                                &relay_index::index_n>(*stream->indexes_ht->ht)) {
                DBG("index %p net_seq_num %" PRIu64 " refcount %ld"
                    " stream %" PRIu64 " trace %" PRIu64 " session %" PRIu64,
                    index,
                DBG("index %p net_seq_num %" PRIu64 " refcount %ld"
                    " stream %" PRIu64 " trace %" PRIu64 " session %" PRIu64,
                    index,
@@ -1326,7 +1321,6 @@ static void print_stream_indexes(struct relay_stream *stream)
                    index->stream->trace->id,
                    index->stream->trace->session->id);
        }
                    index->stream->trace->id,
                    index->stream->trace->session->id);
        }
-       rcu_read_unlock();
 }
 
 int stream_reset_file(struct relay_stream *stream)
 }
 
 int stream_reset_file(struct relay_stream *stream)
@@ -1362,18 +1356,18 @@ int stream_reset_file(struct relay_stream *stream)
 
 void print_relay_streams()
 {
 
 void print_relay_streams()
 {
-       struct lttng_ht_iter iter;
-       struct relay_stream *stream;
-
        if (!relay_streams_ht) {
                return;
        }
 
        if (!relay_streams_ht) {
                return;
        }
 
-       rcu_read_lock();
-       cds_lfht_for_each_entry (relay_streams_ht->ht, &iter.iter, stream, node.node) {
+       for (auto *stream :
+            lttng::urcu::lfht_iteration_adapter<relay_stream,
+                                                decltype(relay_stream::node),
+                                                &relay_stream::node>(*relay_streams_ht->ht)) {
                if (!stream_get(stream)) {
                        continue;
                }
                if (!stream_get(stream)) {
                        continue;
                }
+
                DBG("stream %p refcount %ld stream %" PRIu64 " trace %" PRIu64 " session %" PRIu64,
                    stream,
                    stream->ref.refcount,
                DBG("stream %p refcount %ld stream %" PRIu64 " trace %" PRIu64 " session %" PRIu64,
                    stream,
                    stream->ref.refcount,
@@ -1383,5 +1377,4 @@ void print_relay_streams()
                print_stream_indexes(stream);
                stream_put(stream);
        }
                print_stream_indexes(stream);
                stream_put(stream);
        }
-       rcu_read_unlock();
 }
 }
This page took 0.024547 seconds and 4 git commands to generate.