diff options
author | Derek Mauro <dmauro@google.com> | 2023-05-12 08:45:48 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-05-12 08:46:58 -0700 |
commit | 3aa3377ef66e6388ed19fd7c862bf0dc3a3630e0 (patch) | |
tree | 6ab3adb03426b67da67f4e8ac679dec8a7e8a7dc /absl/strings/internal/cord_internal.h | |
parent | 2526926b9275076b03159e7e0a9f1f32b9ed8d09 (diff) | |
download | abseil-3aa3377ef66e6388ed19fd7c862bf0dc3a3630e0.tar.gz abseil-3aa3377ef66e6388ed19fd7c862bf0dc3a3630e0.tar.bz2 abseil-3aa3377ef66e6388ed19fd7c862bf0dc3a3630e0.zip |
Fixed Windows DLL builds of test targets
This is a heavily modified version of
https://github.com/abseil/abseil-cpp/pull/1445,
which adds some missing test libraries to the test DLL.
Unlike #1445, this change moves several global variables out of
headers that did not need to be in headers.
For instance, cord_btree_exhaustive_validation was a global
defined/declared in cord_internal, but only used in cord_rep_btree
and its test.
cordz_handle defined a queue in its header even though it wasn't needed,
which also led to ODR problems.
The Spinlock used in CordzHandle is replaced with a Mutex. This was
originally a Mutex, but Chromium asked us to change it to a Spinlock
to avoid a static initializer. After this change, the static
initializer is no longer an issue.
#1407
PiperOrigin-RevId: 531516991
Change-Id: I0e431a193698b20ba03fac6e414c26f153f330a7
Diffstat (limited to 'absl/strings/internal/cord_internal.h')
-rw-r--r-- | absl/strings/internal/cord_internal.h | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/absl/strings/internal/cord_internal.h b/absl/strings/internal/cord_internal.h index e6f0d544..8d9836ba 100644 --- a/absl/strings/internal/cord_internal.h +++ b/absl/strings/internal/cord_internal.h @@ -69,12 +69,6 @@ enum CordFeatureDefaults { extern std::atomic<bool> cord_ring_buffer_enabled; extern std::atomic<bool> shallow_subcords_enabled; -// `cord_btree_exhaustive_validation` can be set to force exhaustive validation -// in debug assertions, and code that calls `IsValid()` explicitly. By default, -// assertions should be relatively cheap and AssertValid() can easily lead to -// O(n^2) complexity as recursive / full tree validation is O(n). -extern std::atomic<bool> cord_btree_exhaustive_validation; - inline void enable_cord_ring_buffer(bool enable) { cord_ring_buffer_enabled.store(enable, std::memory_order_relaxed); } |