summaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/datastore/buffer_type/buffer_type_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vespalib/src/tests/datastore/buffer_type/buffer_type_test.cpp')
-rw-r--r--vespalib/src/tests/datastore/buffer_type/buffer_type_test.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/vespalib/src/tests/datastore/buffer_type/buffer_type_test.cpp b/vespalib/src/tests/datastore/buffer_type/buffer_type_test.cpp
index a31dfffc25b..6988e41add1 100644
--- a/vespalib/src/tests/datastore/buffer_type/buffer_type_test.cpp
+++ b/vespalib/src/tests/datastore/buffer_type/buffer_type_test.cpp
@@ -12,9 +12,9 @@ constexpr uint32_t NUM_ARRAYS_FOR_NEW_BUFFER(0);
struct Setup {
uint32_t _minArrays;
- ElemCount _usedElems;
+ std::atomic<ElemCount> _usedElems;
ElemCount _neededElems;
- ElemCount _deadElems;
+ std::atomic<ElemCount> _deadElems;
uint32_t _bufferId;
float _allocGrowFactor;
bool _resizing;
@@ -27,6 +27,7 @@ struct Setup {
_allocGrowFactor(0.5),
_resizing(false)
{}
+ Setup(const Setup& rhs);
Setup &minArrays(uint32_t value) { _minArrays = value; return *this; }
Setup &used(size_t value) { _usedElems = value; return *this; }
Setup &needed(size_t value) { _neededElems = value; return *this; }
@@ -35,6 +36,17 @@ struct Setup {
Setup &resizing(bool value) { _resizing = value; return *this; }
};
+Setup::Setup(const Setup& rhs)
+ : _minArrays(rhs._minArrays),
+ _usedElems(rhs._usedElems.load(std::memory_order_relaxed)),
+ _neededElems(rhs._neededElems),
+ _deadElems(rhs._deadElems.load(std::memory_order_relaxed)),
+ _bufferId(rhs._bufferId),
+ _allocGrowFactor(rhs._allocGrowFactor),
+ _resizing(rhs._resizing)
+{
+}
+
struct Fixture {
std::vector<Setup> setups;
IntBufferType bufferType;