X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbin%2Flttng-sessiond%2Fust-registry-session.cpp;h=eced786e0446836f54ffbadf47a0607f5eb04775;hb=042670db60ac672661e1bbc8de4da1d8590e20b4;hp=b78091a04f4ca277ac033b2c60b85670922abf4d;hpb=3691d312bcf4dc2cc15f0ecb1f0e2fd2f34315b8;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/ust-registry-session.cpp b/src/bin/lttng-sessiond/ust-registry-session.cpp index b78091a04..eced786e0 100644 --- a/src/bin/lttng-sessiond/ust-registry-session.cpp +++ b/src/bin/lttng-sessiond/ust-registry-session.cpp @@ -88,7 +88,7 @@ void destroy_channel_rcu(struct rcu_head *head) DIAGNOSTIC_PUSH DIAGNOSTIC_IGNORE_INVALID_OFFSETOF lsu::registry_channel *chan = - caa_container_of(head, lsu::registry_channel, _rcu_head); + lttng::utils::container_of(head, &lsu::registry_channel::_rcu_head); DIAGNOSTIC_POP delete chan; @@ -125,7 +125,7 @@ void destroy_channel(lsu::registry_channel *chan, bool notify) noexcept DIAGNOSTIC_PUSH DIAGNOSTIC_IGNORE_INVALID_OFFSETOF cds_lfht_for_each_entry( - chan->_events->ht, &iter.iter, event, _node.node) { + chan->_events->ht, &iter.iter, event, _node) { /* Delete the node from the ht and free it. */ ust_registry_channel_destroy_event(chan, event); } @@ -149,7 +149,7 @@ void destroy_enum_rcu(struct rcu_head *head) DIAGNOSTIC_PUSH DIAGNOSTIC_IGNORE_INVALID_OFFSETOF lsu::registry_enum *reg_enum = - caa_container_of(head, lsu::registry_enum, rcu_head); + lttng::utils::container_of(head, &lsu::registry_enum::rcu_head); DIAGNOSTIC_POP destroy_enum(reg_enum); @@ -246,6 +246,7 @@ lsu::registry_session::registry_session(const struct lst::abi& in_abi, _gid{egid}, _app_tracer_version{.major = major, .minor = minor}, _tracing_id{tracing_id}, + _clock{lttng::make_unique()}, _metadata_generating_visitor{lttng::make_unique(abi, [this](const std::string& fragment) { _append_metadata_fragment(fragment); @@ -434,7 +435,7 @@ lttng::sessiond::ust::registry_channel& lsu::registry_session::get_channel( DIAGNOSTIC_PUSH DIAGNOSTIC_IGNORE_INVALID_OFFSETOF - auto chan = caa_container_of(node, lsu::registry_channel, _node); + auto chan = lttng::utils::container_of(node, &lsu::registry_channel::_node); DIAGNOSTIC_POP return *chan; } @@ -487,7 +488,7 @@ void lsu::registry_session::_visit_environment( void lsu::registry_session::_accept_on_clock_classes(lst::trace_class_visitor& visitor) const { ASSERT_LOCKED(_lock); - _clock.accept(visitor); + _clock->accept(visitor); } void lsu::registry_session::_accept_on_stream_classes(lst::trace_class_visitor& visitor) const @@ -613,6 +614,9 @@ void lsu::registry_session::regenerate_metadata() { lttng::pthread::lock_guard registry_lock(_lock); + /* Resample the clock */ + _clock = lttng::make_unique(); + _metadata_version++; _reset_metadata(); _generate_metadata(); @@ -654,7 +658,7 @@ lsu::registry_session::get_enumeration(const char *enum_name, uint64_t enum_id) DIAGNOSTIC_PUSH DIAGNOSTIC_IGNORE_INVALID_OFFSETOF - reg_enum = caa_container_of(node, lsu::registry_enum, node); + reg_enum = lttng::utils::container_of(node, &lsu::registry_enum::node); DIAGNOSTIC_POP return lsu::registry_enum::const_rcu_protected_reference{*reg_enum, std::move(rcu_lock)}; @@ -682,7 +686,7 @@ lsu::registry_enum *lsu::registry_session::_lookup_enum( DIAGNOSTIC_PUSH DIAGNOSTIC_IGNORE_INVALID_OFFSETOF - reg_enum = caa_container_of(node, lsu::registry_enum, node); + reg_enum = lttng::utils::container_of(node, &lsu::registry_enum::node); DIAGNOSTIC_POP end: @@ -762,4 +766,4 @@ void lsu::registry_session::create_or_find_enum( DBG("UST registry reply with enum %s with id %" PRIu64 " in sess_objd: %u", enum_name, reg_enum->id, session_objd); *enum_id = reg_enum->id; -} \ No newline at end of file +}