diff options
author | Benjamin Barenblat <bbaren@google.com> | 2021-06-01 15:17:05 -0400 |
---|---|---|
committer | Benjamin Barenblat <bbaren@google.com> | 2021-06-01 15:17:05 -0400 |
commit | 69d6d103ecf71e1a57f99077664d37ff54bf883e (patch) | |
tree | a8e1dbe1e1efd6445e6fcf64973e8f5cd51ef30a /absl/base/internal/thread_identity.h | |
parent | ebc3d7213cf73b26b5e44edff58c759ea44ee9aa (diff) | |
parent | 278e0a071885a22dcd2fd1b5576cc44757299343 (diff) |
Merge upstream LTS update 20210324.2
Diffstat (limited to 'absl/base/internal/thread_identity.h')
-rw-r--r-- | absl/base/internal/thread_identity.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/absl/base/internal/thread_identity.h b/absl/base/internal/thread_identity.h index 9ee651a3..6e25b92f 100644 --- a/absl/base/internal/thread_identity.h +++ b/absl/base/internal/thread_identity.h @@ -236,13 +236,18 @@ ABSL_CONST_INIT extern thread_local ThreadIdentity* thread_identity_ptr; #error Thread-local storage not detected on this platform #endif -// thread_local variables cannot be in headers exposed by DLLs. However, it is -// important for performance reasons in general that -// `CurrentThreadIdentityIfPresent` be inlined. This is not possible across a -// DLL boundary so, with DLLs, we opt to have the function not be inlined. Note +// thread_local variables cannot be in headers exposed by DLLs or in certain +// build configurations on Apple platforms. However, it is important for +// performance reasons in general that `CurrentThreadIdentityIfPresent` be +// inlined. In the other cases we opt to have the function not be inlined. Note // that `CurrentThreadIdentityIfPresent` is declared above so we can exclude -// this entire inline definition when compiling as a DLL. -#if !defined(ABSL_BUILD_DLL) && !defined(ABSL_CONSUME_DLL) +// this entire inline definition. +#if !defined(__APPLE__) && !defined(ABSL_BUILD_DLL) && \ + !defined(ABSL_CONSUME_DLL) +#define ABSL_INTERNAL_INLINE_CURRENT_THREAD_IDENTITY_IF_PRESENT 1 +#endif + +#ifdef ABSL_INTERNAL_INLINE_CURRENT_THREAD_IDENTITY_IF_PRESENT inline ThreadIdentity* CurrentThreadIdentityIfPresent() { return thread_identity_ptr; } |