aboutsummaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2023-05-08 12:26:59 +0200
committerTor Egge <Tor.Egge@online.no>2023-05-08 12:26:59 +0200
commit2d52d4bbf6960e781b8d186def07cd231055f780 (patch)
treeedf8fe20a7651c62ce57dcaaf7390548450d2915 /streamingvisitors
parent07479de1988512421cb34f9a2026770c4678191b (diff)
Share SearchEnvironment between visitor threads.
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp7
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.h2
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;
};
}