diff options
Diffstat (limited to 'messagebus')
-rw-r--r-- | messagebus/src/vespa/messagebus/network/rpcservicepool.cpp | 5 |
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(); |