diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-11-13 15:54:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-13 15:54:48 +0100 |
commit | a4fdefa30bf5905464d0128cd346494b3067e251 (patch) | |
tree | d02d3dc633e009b539c2403ef700784c004001f9 | |
parent | aacfc3aa817c9bcd302aa63b3c23e265e9e84e40 (diff) | |
parent | 4bf0e80369bf4fff155becb083de6775899de163 (diff) |
Merge pull request #29324 from vespa-engine/havardpe/fix-tsan-error
fix tsan error
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/matchengine/matchengine.cpp | 4 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/matchengine/matchengine.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.cpp b/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.cpp index efe03c7b57e..1b891baa5c9 100644 --- a/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.cpp +++ b/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.cpp @@ -75,7 +75,7 @@ MatchEngine::close() LOG(debug, "Closing search interface."); { std::lock_guard<std::mutex> guard(_lock); - _closed = true; + _closed.store(true, std::memory_order_relaxed); } LOG(debug, "Handshaking with task manager."); @@ -108,7 +108,7 @@ SearchReply::UP MatchEngine::search(SearchRequest::Source request, SearchClient &client) { // We continue to allow searches if the node is in Maintenance mode - if (_closed || (!_nodeUp && !_nodeMaintenance.load(std::memory_order_relaxed))) { + if (_closed.load(std::memory_order_relaxed) || (!_nodeUp && !_nodeMaintenance.load(std::memory_order_relaxed))) { auto ret = std::make_unique<SearchReply>(); ret->setDistributionKey(_distributionKey); diff --git a/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.h b/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.h index 9d4bfc5cce5..5365cb6a290 100644 --- a/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.h +++ b/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.h @@ -20,7 +20,7 @@ private: std::mutex _lock; const uint32_t _distributionKey; bool _async; - bool _closed; + std::atomic<bool> _closed; std::atomic<bool> _forward_issues; HandlerMap<ISearchHandler> _handlers; vespalib::ThreadStackExecutor _executor; |