23 auto [protocol_server_instances, mutex] =
Servers();
25 std::lock_guard<std::mutex> guard(mutex);
27 auto it = protocol_server_instances.find(name);
28 if (it != protocol_server_instances.end())
29 return it->second.get();
33 auto pair = protocol_server_instances.try_emplace(name, create_callback());
34 return pair.first->second.get();
55 llvm::Error
error = llvm::Error::success();
57 auto [protocol_server_instances, mutex] =
Servers();
58 std::lock_guard<std::mutex> guard(mutex);
59 for (
auto &instance : protocol_server_instances) {
60 if (llvm::Error instance_error = instance.second->Stop())
61 error = llvm::joinErrors(std::move(
error), std::move(instance_error));
64 protocol_server_instances.clear();