aboutsummaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-03-30 12:24:11 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-03-30 12:24:45 +0000
commit0423c53c743ad20504995cc5013c49d37d890741 (patch)
treec6aa5d433be6dc890adeee95c38330c9d9309ff4 /messagebus
parentc098a56abdf64cb98554dc91592ca1b409e92540 (diff)
Avoid double lookup.
Diffstat (limited to 'messagebus')
-rw-r--r--messagebus/src/vespa/messagebus/network/rpcservicepool.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/messagebus/src/vespa/messagebus/network/rpcservicepool.cpp b/messagebus/src/vespa/messagebus/network/rpcservicepool.cpp
index cad28b9f601..fb40ccff62b 100644
--- a/messagebus/src/vespa/messagebus/network/rpcservicepool.cpp
+++ b/messagebus/src/vespa/messagebus/network/rpcservicepool.cpp
@@ -19,8 +19,9 @@ RPCServicePool::~RPCServicePool() = default;
RPCServiceAddress::UP
RPCServicePool::resolve(const string &pattern)
{
- if (_lru.hasKey(pattern)) {
- return _lru[pattern]->resolve();
+ std::unique_ptr<RPCService> * found = _lru.findAndRef(pattern);
+ if (found) {
+ return (*found)->resolve();
} else {
auto service = std::make_unique<RPCService>(_net.getMirror(), pattern);
auto result = service->resolve();