summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2022-03-21 14:36:56 +0100
committerGitHub <noreply@github.com>2022-03-21 14:36:56 +0100
commit90db7b1ee93c737e3ab26530c321dfe66f558f53 (patch)
tree43289308aa81c0821aac4e6014f6493ca913b157
parentd0f6d0105b1a21f4871bdd347487c267399327c3 (diff)
parent51185187afa3b4e5eebb8a150b1af7f8d0bc7e34 (diff)
Merge pull request #21760 from vespa-engine/havardpe/fix-flush-tsan-warning
fix tsan warning in flush test
-rw-r--r--searchcore/src/tests/proton/flushengine/flushengine_test.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/searchcore/src/tests/proton/flushengine/flushengine_test.cpp b/searchcore/src/tests/proton/flushengine/flushengine_test.cpp
index 506313527eb..4595ce12229 100644
--- a/searchcore/src/tests/proton/flushengine/flushengine_test.cpp
+++ b/searchcore/src/tests/proton/flushengine/flushengine_test.cpp
@@ -196,7 +196,7 @@ void WrappedFlushTask::run()
}
class SimpleTask : public searchcorespi::FlushTask {
- search::SerialNum &_flushedSerial;
+ std::atomic<search::SerialNum> &_flushedSerial;
search::SerialNum &_currentSerial;
public:
vespalib::Gate &_start;
@@ -207,7 +207,7 @@ public:
SimpleTask(vespalib::Gate &start,
vespalib::Gate &done,
vespalib::Gate *proceed,
- search::SerialNum &flushedSerial,
+ std::atomic<search::SerialNum> &flushedSerial,
search::SerialNum &currentSerial)
: _flushedSerial(flushedSerial), _currentSerial(currentSerial),
_start(start), _done(done), _proceed(proceed)
@@ -218,7 +218,7 @@ public:
if (_proceed != nullptr) {
_proceed->await();
}
- _flushedSerial = _currentSerial;
+ _flushedSerial.store(_currentSerial, std::memory_order_relaxed);
_done.countDown();
}
@@ -227,7 +227,7 @@ public:
class SimpleTarget : public test::DummyFlushTarget {
public:
- search::SerialNum _flushedSerial;
+ std::atomic<search::SerialNum> _flushedSerial;
search::SerialNum _currentSerial;
vespalib::Gate _proceed;
vespalib::Gate _initDone;
@@ -276,8 +276,8 @@ public:
Time getLastFlushTime() const override { return vespalib::system_clock::now(); }
SerialNum getFlushedSerialNum() const override {
- LOG(info, "SimpleTarget(%s)::getFlushedSerialNum() = %" PRIu64, getName().c_str(), _flushedSerial);
- return _flushedSerial;
+ LOG(info, "SimpleTarget(%s)::getFlushedSerialNum() = %" PRIu64, getName().c_str(), _flushedSerial.load(std::memory_order_relaxed));
+ return _flushedSerial.load(std::memory_order_relaxed);
}
Task::UP initFlush(SerialNum currentSerial, std::shared_ptr<search::IFlushToken>) override {