From 60b9bbde6ff13e3d0b072ab07990740e5e837c99 Mon Sep 17 00:00:00 2001 From: "Mark D. Roth" Date: Fri, 26 Apr 2024 23:28:10 +0000 Subject: [PATCH] simplify --- src/core/load_balancing/endpoint_list.h | 17 +++++++++-------- .../load_balancing/round_robin/round_robin.cc | 18 ++++++++---------- .../weighted_round_robin.cc | 18 ++++++++---------- 3 files changed, 25 insertions(+), 28 deletions(-) diff --git a/src/core/load_balancing/endpoint_list.h b/src/core/load_balancing/endpoint_list.h index 330fc233a95..cd8276bf51a 100644 --- a/src/core/load_balancing/endpoint_list.h +++ b/src/core/load_balancing/endpoint_list.h @@ -62,12 +62,9 @@ class MyEndpointList : public EndpointList { Init(endpoints, args, [&](RefCountedPtr endpoint_list, const EndpointAddresses& addresses, const ChannelArgs& args) { - absl::Status status; - auto endpoint = MakeOrphanable( + return MakeOrphanable( std::move(endpoint_list), addresses, args, - policy()->work_serializer(), &status); - if (!error.empty()) errors->push_back(status.ToString()); - return endpoint; + policy()->work_serializer(), errors); }); } @@ -75,11 +72,15 @@ class MyEndpointList : public EndpointList { class MyEndpoint : public Endpoint { public: MyEndpoint(RefCountedPtr endpoint_list, - const EndpointAddresses& address, const ChannelArgs& args, + const EndpointAddresses& addresses, const ChannelArgs& args, std::shared_ptr work_serializer, - absl::Status* status) + std::vector* errors) : Endpoint(std::move(endpoint_list)) { - *status = Init(addresses, args, std::move(work_serializer)); + absl::Status status = Init(addresses, args, std::move(work_serializer)); + if (!status.ok()) { + errors->emplace_back(absl::StrCat( + "endpoint ", addresses.ToString(), ": ", status.ToString())); + } } private: diff --git a/src/core/load_balancing/round_robin/round_robin.cc b/src/core/load_balancing/round_robin/round_robin.cc index 17006c9dbdc..a232b3fdc17 100644 --- a/src/core/load_balancing/round_robin/round_robin.cc +++ b/src/core/load_balancing/round_robin/round_robin.cc @@ -81,15 +81,9 @@ class RoundRobin final : public LoadBalancingPolicy { Init(endpoints, args, [&](RefCountedPtr endpoint_list, const EndpointAddresses& addresses, const ChannelArgs& args) { - absl::Status status; - auto endpoint = MakeOrphanable( + return MakeOrphanable( std::move(endpoint_list), addresses, args, - policy()->work_serializer(), &status); - if (!status.ok()) { - errors->emplace_back(absl::StrCat( - "endpoint ", addresses.ToString(), ": ", status.ToString())); - } - return endpoint; + policy()->work_serializer(), errors); }); } @@ -100,9 +94,13 @@ class RoundRobin final : public LoadBalancingPolicy { const EndpointAddresses& addresses, const ChannelArgs& args, std::shared_ptr work_serializer, - absl::Status* status) + std::vector* errors) : Endpoint(std::move(endpoint_list)) { - *status = Init(addresses, args, std::move(work_serializer)); + absl::Status status = Init(addresses, args, std::move(work_serializer)); + if (!status.ok()) { + errors->emplace_back(absl::StrCat("endpoint ", addresses.ToString(), + ": ", status.ToString())); + } } private: diff --git a/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc b/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc index 729133f975f..73311eb07eb 100644 --- a/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +++ b/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc @@ -222,11 +222,15 @@ class WeightedRoundRobin final : public LoadBalancingPolicy { WrrEndpoint(RefCountedPtr endpoint_list, const EndpointAddresses& addresses, const ChannelArgs& args, std::shared_ptr work_serializer, - absl::Status* status) + std::vector* errors) : Endpoint(std::move(endpoint_list)), weight_(policy()->GetOrCreateWeight( addresses.addresses())) { - *status = Init(addresses, args, std::move(work_serializer)); + absl::Status status = Init(addresses, args, std::move(work_serializer)); + if (!status.ok()) { + errors->emplace_back(absl::StrCat("endpoint ", addresses.ToString(), + ": ", status.ToString())); + } } RefCountedPtr weight() const { return weight_; } @@ -270,15 +274,9 @@ class WeightedRoundRobin final : public LoadBalancingPolicy { Init(endpoints, args, [&](RefCountedPtr endpoint_list, const EndpointAddresses& addresses, const ChannelArgs& args) { - absl::Status status; - auto endpoint = MakeOrphanable( + return MakeOrphanable( std::move(endpoint_list), addresses, args, - policy()->work_serializer(), &status); - if (!status.ok()) { - errors->emplace_back(absl::StrCat( - "endpoint ", addresses.ToString(), ": ", status.ToString())); - } - return endpoint; + policy()->work_serializer(), errors); }); }