aboutsummaryrefslogtreecommitdiff
path: root/third_party/abseil-cpp/absl/status/status_payload_printer.cc
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-04-18 07:13:06 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-04-18 07:13:06 +0000
commit2d48eed485cc862f09362081d757d37492e2e416 (patch)
tree2ce94d7f0804ccb77d1fa9b2a1bca00eecdff1e2 /third_party/abseil-cpp/absl/status/status_payload_printer.cc
parent6ed7926307e602834bb5d961f98c174805e65523 (diff)
parent025ce89c046c65f11b5df7830d1248c91f3d9cd8 (diff)
downloadwebrtc-2d48eed485cc862f09362081d757d37492e2e416.tar.gz
Merge "Snap for 8466163 from 798f3afdf6be88186e79048e6abb39e3aaa6f4df to main-cg-testing-release" into main-cg-testing-releasemain-cg-testing-release
Diffstat (limited to 'third_party/abseil-cpp/absl/status/status_payload_printer.cc')
-rw-r--r--third_party/abseil-cpp/absl/status/status_payload_printer.cc15
1 files changed, 5 insertions, 10 deletions
diff --git a/third_party/abseil-cpp/absl/status/status_payload_printer.cc b/third_party/abseil-cpp/absl/status/status_payload_printer.cc
index ad96d76acf..a47aea11c2 100644
--- a/third_party/abseil-cpp/absl/status/status_payload_printer.cc
+++ b/third_party/abseil-cpp/absl/status/status_payload_printer.cc
@@ -16,26 +16,21 @@
#include <atomic>
#include "absl/base/attributes.h"
+#include "absl/base/internal/atomic_hook.h"
namespace absl {
ABSL_NAMESPACE_BEGIN
namespace status_internal {
-namespace {
-// Tried constant initialized global variable but it doesn't work with Lexan
-// (MSVC's `std::atomic` has trouble constant initializing).
-std::atomic<StatusPayloadPrinter>& GetStatusPayloadPrinterStorage() {
- ABSL_CONST_INIT static std::atomic<StatusPayloadPrinter> instance{nullptr};
- return instance;
-}
-} // namespace
+ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES
+static absl::base_internal::AtomicHook<StatusPayloadPrinter> storage;
void SetStatusPayloadPrinter(StatusPayloadPrinter printer) {
- GetStatusPayloadPrinterStorage().store(printer, std::memory_order_relaxed);
+ storage.Store(printer);
}
StatusPayloadPrinter GetStatusPayloadPrinter() {
- return GetStatusPayloadPrinterStorage().load(std::memory_order_relaxed);
+ return storage.Load();
}
} // namespace status_internal