summaryrefslogtreecommitdiff
path: root/absl/base/internal/thread_identity.cc
diff options
context:
space:
mode:
authorGravatar Abseil Team <absl-team@google.com>2020-10-30 10:38:44 -0700
committerGravatar vslashg <gfalcon@google.com>2020-10-30 15:43:07 -0400
commitc9894d1dc38577c4ce50eefe0a944ea8d46d7fc5 (patch)
tree84697fb6c0ae12c464e495e4ae7414f584f9875f /absl/base/internal/thread_identity.cc
parente9b9e38f67a008d66133535a72ada843bd66013f (diff)
Export of internal Abseil changes
-- dce086fa6e045bed433c664f95a6581b7ffb2d98 by Abseil Team <absl-team@google.com>: fix spelling error "fulfil" -> "fulfill" PiperOrigin-RevId: 339898016 -- 10faa4546b69d8a07f949bc03dd9671231232ad0 by Abseil Team <absl-team@google.com>: Clarify comments on variant::emplace PiperOrigin-RevId: 339897241 -- 0d02261a7a8b9c11e3a4e76dfedf4d95590e2419 by Derek Mauro <dmauro@google.com>: Use thread_local for ThreadIdentity storage on Apple platforms that support it PiperOrigin-RevId: 339698124 GitOrigin-RevId: dce086fa6e045bed433c664f95a6581b7ffb2d98 Change-Id: I8c668b33c805fd5231ceb285652c80f312e5a33a
Diffstat (limited to 'absl/base/internal/thread_identity.cc')
-rw-r--r--absl/base/internal/thread_identity.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/absl/base/internal/thread_identity.cc b/absl/base/internal/thread_identity.cc
index d63a04ae..6ea010ed 100644
--- a/absl/base/internal/thread_identity.cc
+++ b/absl/base/internal/thread_identity.cc
@@ -23,6 +23,7 @@
#include <cassert>
#include <memory>
+#include "absl/base/attributes.h"
#include "absl/base/call_once.h"
#include "absl/base/internal/raw_logging.h"
#include "absl/base/internal/spinlock.h"
@@ -53,9 +54,11 @@ void AllocateThreadIdentityKey(ThreadIdentityReclaimerFunction reclaimer) {
// exist within a process (via dlopen() or similar), references to
// thread_identity_ptr from each instance of the code will refer to
// *different* instances of this ptr.
-#ifdef __GNUC__
+// Apple platforms have the visibility attribute, but issue a compile warning
+// that protected visibility is unsupported.
+#if ABSL_HAVE_ATTRIBUTE(visibility) && !defined(__APPLE__)
__attribute__((visibility("protected")))
-#endif // __GNUC__
+#endif // ABSL_HAVE_ATTRIBUTE(visibility) && !defined(__APPLE__)
#if ABSL_PER_THREAD_TLS
// Prefer __thread to thread_local as benchmarks indicate it is a bit faster.
ABSL_PER_THREAD_TLS_KEYWORD ThreadIdentity* thread_identity_ptr = nullptr;