diff --git a/CARET_trace/include/caret_trace/tracing_controller.hpp b/CARET_trace/include/caret_trace/tracing_controller.hpp index 345f68ba..ffe67910 100644 --- a/CARET_trace/include/caret_trace/tracing_controller.hpp +++ b/CARET_trace/include/caret_trace/tracing_controller.hpp @@ -186,6 +186,7 @@ class TracingController void info(std::string message) const; std::shared_timed_mutex mutex_; + std::shared_timed_mutex nested_mutex_; std::string to_node_name(const void * callback); std::string to_topic_name(const void * callback); diff --git a/CARET_trace/src/tracing_controller.cpp b/CARET_trace/src/tracing_controller.cpp index f5396ea6..9ad7ef94 100644 --- a/CARET_trace/src/tracing_controller.cpp +++ b/CARET_trace/src/tracing_controller.cpp @@ -1009,7 +1009,7 @@ void TracingController::add_client_handle(const void * client_handle, const void void TracingController::add_allowed_messages(const void * message, bool is_allowed) { - // Be sure to call with "mutex_" locked. + std::lock_guard lock(nested_mutex_); static const int max_sz = 256; if (allowed_messages_.size() > max_sz) { allowed_messages_.clear();