Replace explicit rcu_read_lock/unlock with lttng::urcu::read_lock_guard
[lttng-tools.git] / src / bin / lttng-sessiond / rotation-thread.cpp
index aa5dc4a8c40432a7c7a2f03dfb36e6982f0c150f..4a0865eb8940a4faec5bb288ac61e50e1bca79ad 100644 (file)
@@ -26,6 +26,7 @@
 #include <common/hashtable/utils.hpp>
 #include <common/kernel-ctl/kernel-ctl.hpp>
 #include <common/time.hpp>
+#include <common/urcu.hpp>
 #include <common/utils.hpp>
 
 #include <lttng/condition/condition-internal.hpp>
@@ -318,6 +319,7 @@ static void check_session_rotation_pending_on_consumers(struct ltt_session *sess
        uint64_t relayd_id;
        bool chunk_exists_on_peer = false;
        enum lttng_trace_chunk_status chunk_status;
+       lttng::urcu::read_lock_guard read_lock;
 
        LTTNG_ASSERT(session->chunk_being_archived);
 
@@ -325,10 +327,10 @@ static void check_session_rotation_pending_on_consumers(struct ltt_session *sess
         * Check for a local pending rotation on all consumers (32-bit
         * user space, 64-bit user space, and kernel).
         */
-       rcu_read_lock();
        if (!session->ust_session) {
                goto skip_ust;
        }
+
        cds_lfht_for_each_entry (
                session->ust_session->consumer->socks->ht, &iter, socket, node.node) {
                relayd_id = session->ust_session->consumer->type == CONSUMER_DST_LOCAL ?
@@ -386,7 +388,6 @@ skip_ust:
        }
 skip_kernel:
 end:
-       rcu_read_unlock();
 
        if (!chunk_exists_on_peer) {
                uint64_t chunk_being_archived_id;
This page took 0.023355 seconds and 4 git commands to generate.