diff options
author | Tor Egge <Tor.Egge@online.no> | 2023-05-08 12:26:59 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2023-05-08 12:26:59 +0200 |
commit | 2d52d4bbf6960e781b8d186def07cd231055f780 (patch) | |
tree | edf8fe20a7651c62ce57dcaaf7390548450d2915 /streamingvisitors | |
parent | 07479de1988512421cb34f9a2026770c4678191b (diff) |
Share SearchEnvironment between visitor threads.
Diffstat (limited to 'streamingvisitors')
-rw-r--r-- | streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp | 7 | ||||
-rw-r--r-- | streamingvisitors/src/vespa/searchvisitor/searchvisitor.h | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp index e81292b4170..94bc3da7df9 100644 --- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp +++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp @@ -461,13 +461,16 @@ void SearchVisitor::init(const Parameters & params) SearchVisitorFactory::SearchVisitorFactory(const config::ConfigUri & configUri) : VisitorFactory(), - _configUri(configUri) + _configUri(configUri), + _env(std::make_shared<SearchEnvironment>(_configUri)) {} +SearchVisitorFactory::~SearchVisitorFactory() = default; + std::shared_ptr<VisitorEnvironment> SearchVisitorFactory::makeVisitorEnvironment(StorageComponent&) { - return std::make_shared<SearchEnvironment>(_configUri); + return _env; } storage::Visitor* diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h index 24b7bd64aec..daeb4013ebd 100644 --- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h +++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h @@ -490,12 +490,14 @@ private: class SearchVisitorFactory : public storage::VisitorFactory { config::ConfigUri _configUri; + std::shared_ptr<storage::VisitorEnvironment> _env; std::shared_ptr<storage::VisitorEnvironment> makeVisitorEnvironment(storage::StorageComponent&) override; storage::Visitor* makeVisitor(storage::StorageComponent&, storage::VisitorEnvironment&env, const vdslib::Parameters& params) override; public: explicit SearchVisitorFactory(const config::ConfigUri & configUri); + ~SearchVisitorFactory() override; }; } |