summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-02-21 17:48:53 +0100
committerGitHub <noreply@github.com>2022-02-21 17:48:53 +0100
commitf67ad6e4bdb5cf4b834428c61bc18953d9efd761 (patch)
tree9757653934822d409febc6956169af0002883388 /config
parent1e8eaa98bb490f99f4b085256ce232aff1a95aca (diff)
parent83a2ef4c43a00eb09d31e41925260f5ea85c40bd (diff)
Merge pull request #21281 from vespa-engine/balder/use-common-transport
Use a common FNET_Transport owned by Proton in both SceduledExecutor …
Diffstat (limited to 'config')
-rw-r--r--config/src/tests/file_acquirer/file_acquirer_test.cpp18
-rw-r--r--config/src/vespa/config/file_acquirer/file_acquirer.cpp15
-rw-r--r--config/src/vespa/config/file_acquirer/file_acquirer.h9
3 files changed, 22 insertions, 20 deletions
diff --git a/config/src/tests/file_acquirer/file_acquirer_test.cpp b/config/src/tests/file_acquirer/file_acquirer_test.cpp
index f289e42edcb..7daafc37fcf 100644
--- a/config/src/tests/file_acquirer/file_acquirer_test.cpp
+++ b/config/src/tests/file_acquirer/file_acquirer_test.cpp
@@ -3,12 +3,16 @@
#include <vespa/config/file_acquirer/file_acquirer.h>
#include <vespa/fnet/frt/supervisor.h>
#include <vespa/fnet/frt/rpcrequest.h>
+#include <vespa/fnet/transport.h>
+#include <vespa/fastos/thread.h>
#include <vespa/vespalib/util/stringfmt.h>
using namespace config;
struct ServerFixture : FRT_Invokable {
fnet::frt::StandaloneFRT server;
+ FastOS_ThreadPool threadPool;
+ FNET_Transport transport;
FRT_Supervisor &orb;
vespalib::string spec;
@@ -20,10 +24,16 @@ struct ServerFixture : FRT_Invokable {
rb.ReturnDesc("file_path", "actual path to the requested file");
}
- ServerFixture() : server(), orb(server.supervisor()) {
+ ServerFixture()
+ : server(),
+ threadPool(64_Ki),
+ transport(),
+ orb(server.supervisor())
+ {
init_rpc();
orb.Listen(0);
spec = vespalib::make_string("tcp/localhost:%d", orb.GetListenPort());
+ transport.Start(&threadPool);
}
void RPC_waitFor(FRT_RPCRequest *req) {
@@ -36,10 +46,12 @@ struct ServerFixture : FRT_Invokable {
}
}
- ~ServerFixture() = default;
+ ~ServerFixture() {
+ transport.ShutDown(true);
+ }
};
-TEST_FF("require that files can be acquired over rpc", ServerFixture(), RpcFileAcquirer(f1.spec)) {
+TEST_FF("require that files can be acquired over rpc", ServerFixture(), RpcFileAcquirer(f1.transport, f1.spec)) {
EXPECT_EQUAL("my_path", f2.wait_for("my_ref", 60.0));
EXPECT_EQUAL("", f2.wait_for("bogus_ref", 60.0));
}
diff --git a/config/src/vespa/config/file_acquirer/file_acquirer.cpp b/config/src/vespa/config/file_acquirer/file_acquirer.cpp
index 46782cac9ca..9cf280566e0 100644
--- a/config/src/vespa/config/file_acquirer/file_acquirer.cpp
+++ b/config/src/vespa/config/file_acquirer/file_acquirer.cpp
@@ -13,14 +13,10 @@ LOG_SETUP(".config.file_acquirer");
namespace config {
-RpcFileAcquirer::RpcFileAcquirer(const vespalib::string &spec)
- : _threadPool(std::make_unique<FastOS_ThreadPool>(60_Ki)),
- _transport(std::make_unique<FNET_Transport>()),
- _orb(std::make_unique<FRT_Supervisor>(_transport.get())),
+RpcFileAcquirer::RpcFileAcquirer(FNET_Transport & transport, const vespalib::string &spec)
+ : _orb(std::make_unique<FRT_Supervisor>(&transport)),
_spec(spec)
-{
- _transport->Start(_threadPool.get());
-}
+{ }
vespalib::string
RpcFileAcquirer::wait_for(const vespalib::string &file_ref, double timeout_s)
@@ -42,9 +38,6 @@ RpcFileAcquirer::wait_for(const vespalib::string &file_ref, double timeout_s)
return path;
}
-RpcFileAcquirer::~RpcFileAcquirer()
-{
- _transport->ShutDown(true);
-}
+RpcFileAcquirer::~RpcFileAcquirer() = default;
} // namespace config
diff --git a/config/src/vespa/config/file_acquirer/file_acquirer.h b/config/src/vespa/config/file_acquirer/file_acquirer.h
index 4088065281d..a6d90fbee15 100644
--- a/config/src/vespa/config/file_acquirer/file_acquirer.h
+++ b/config/src/vespa/config/file_acquirer/file_acquirer.h
@@ -6,7 +6,6 @@
class FRT_Supervisor;
class FNET_Transport;
-class FastOS_ThreadPool;
namespace config {
@@ -26,12 +25,10 @@ struct FileAcquirer {
class RpcFileAcquirer : public FileAcquirer
{
private:
- std::unique_ptr<FastOS_ThreadPool> _threadPool;
- std::unique_ptr<FNET_Transport> _transport;
- std::unique_ptr<FRT_Supervisor> _orb;
- vespalib::string _spec;
+ std::unique_ptr<FRT_Supervisor> _orb;
+ vespalib::string _spec;
public:
- RpcFileAcquirer(const vespalib::string &spec);
+ RpcFileAcquirer(FNET_Transport & transport, const vespalib::string &spec);
vespalib::string wait_for(const vespalib::string &file_ref, double timeout_s) override;
~RpcFileAcquirer() override;
};