From 564e8b8620e47d9eaaa2b4efe51061afbf6b2ff6 Mon Sep 17 00:00:00 2001 From: owent Date: Fri, 13 May 2022 12:20:12 +0800 Subject: [PATCH] Update likely usage. Put a link to the spec here instead of copy the text. Signed-off-by: owent --- api/include/opentelemetry/common/macros.h | 18 +++++++++++++----- exporters/otlp/src/otlp_log_recordable.cc | 4 ++-- sdk/src/logs/logger_provider.cc | 3 +-- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/api/include/opentelemetry/common/macros.h b/api/include/opentelemetry/common/macros.h index 10e3b1d36d..9c2e6ec0ef 100644 --- a/api/include/opentelemetry/common/macros.h +++ b/api/include/opentelemetry/common/macros.h @@ -7,13 +7,21 @@ #include "opentelemetry/version.h" -#ifndef likely -# ifdef __GNUC__ -# define likely(x) __builtin_expect(!!(x), 1) -# else -# define likely(x) !!(x) +#ifndef OPENTELEMETRY_LIKELY_IF +# if defined(__has_cpp_attribute) +# if __has_cpp_attribute(likely) +# define OPENTELEMETRY_LIKELY_IF(...) if (__VA_ARGS__) [[likely]] +# endif # endif #endif +#if !defined(OPENTELEMETRY_LIKELY_IF) && (defined(__clang__) || defined(__GNUC__)) +# define OPENTELEMETRY_LIKELY_IF(...) if (__builtin_expect(!!(__VA_ARGS__), true)) +#else +# define OPENTELEMETRY_LIKELY_IF(...) if (__VA_ARGS__) +#endif +#ifndef OPENTELEMETRY_LIKELY_IF +# define OPENTELEMETRY_LIKELY_IF(...) if (__VA_ARGS__) +#endif /// \brief Declare variable as maybe unused /// usage: diff --git a/exporters/otlp/src/otlp_log_recordable.cc b/exporters/otlp/src/otlp_log_recordable.cc index de9e74af5b..dcd977eeef 100644 --- a/exporters/otlp/src/otlp_log_recordable.cc +++ b/exporters/otlp/src/otlp_log_recordable.cc @@ -181,7 +181,7 @@ void OtlpLogRecordable::SetResource(const opentelemetry::sdk::resource::Resource const opentelemetry::sdk::resource::Resource &OtlpLogRecordable::GetResource() const noexcept { - if (likely(nullptr != resource_)) + OPENTELEMETRY_LIKELY_IF(nullptr != resource_) { return *resource_; } @@ -222,7 +222,7 @@ void OtlpLogRecordable::SetInstrumentationLibrary( const opentelemetry::sdk::instrumentationlibrary::InstrumentationLibrary & OtlpLogRecordable::GetInstrumentationLibrary() const noexcept { - if (likely(nullptr != instrumentation_library_)) + OPENTELEMETRY_LIKELY_IF(nullptr != instrumentation_library_) { return *instrumentation_library_; } diff --git a/sdk/src/logs/logger_provider.cc b/sdk/src/logs/logger_provider.cc index 55345b0a1b..089b8d0de0 100644 --- a/sdk/src/logs/logger_provider.cc +++ b/sdk/src/logs/logger_provider.cc @@ -88,8 +88,7 @@ nostd::shared_ptr LoggerProvider::GetLogger( } */ - // For log sources which define a logger name (e.g. Java Logger Name) the Logger Name SHOULD be - // recorded as the Instrumentation Scope name. + // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-instrumentationscope opentelemetry::nostd::unique_ptr lib; if (library_name.empty()) {