From 23719237618ad15f3d074af316cdeabc077f0094 Mon Sep 17 00:00:00 2001 From: Christophe Bedard Date: Wed, 26 Feb 2020 07:51:38 -0500 Subject: [PATCH] Add missing service callback registration tracepoint (#986) Signed-off-by: Christophe Bedard --- rclcpp/include/rclcpp/any_service_callback.hpp | 16 ++++++++++++++++ rclcpp/include/rclcpp/service.hpp | 3 +++ 2 files changed, 19 insertions(+) diff --git a/rclcpp/include/rclcpp/any_service_callback.hpp b/rclcpp/include/rclcpp/any_service_callback.hpp index 106e1fd..294d2f2 100644 --- a/rclcpp/include/rclcpp/any_service_callback.hpp +++ b/rclcpp/include/rclcpp/any_service_callback.hpp @@ -24,6 +24,7 @@ #include "rclcpp/visibility_control.hpp" #include "rmw/types.h" #include "tracetools/tracetools.h" +#include "tracetools/utils.hpp" namespace rclcpp { @@ -98,6 +99,21 @@ public: } TRACEPOINT(callback_end, (const void *)this); } + + void register_callback_for_tracing() + { + if (shared_ptr_callback_) { + TRACEPOINT( + rclcpp_callback_register, + (const void *)this, + get_symbol(shared_ptr_callback_)); + } else if (shared_ptr_with_request_header_callback_) { + TRACEPOINT( + rclcpp_callback_register, + (const void *)this, + get_symbol(shared_ptr_with_request_header_callback_)); + } + } }; } // namespace rclcpp diff --git a/rclcpp/include/rclcpp/service.hpp b/rclcpp/include/rclcpp/service.hpp index eac16ad..379dcde 100644 --- a/rclcpp/include/rclcpp/service.hpp +++ b/rclcpp/include/rclcpp/service.hpp @@ -159,6 +159,7 @@ public: rclcpp_service_callback_added, (const void *)get_service_handle().get(), (const void *)&any_callback_); + any_callback_.register_callback_for_tracing(); } Service( @@ -181,6 +182,7 @@ public: rclcpp_service_callback_added, (const void *)get_service_handle().get(), (const void *)&any_callback_); + any_callback_.register_callback_for_tracing(); } Service( @@ -205,6 +207,7 @@ public: rclcpp_service_callback_added, (const void *)get_service_handle().get(), (const void *)&any_callback_); + any_callback_.register_callback_for_tracing(); } Service() = delete;