aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/client_config/lb_policies/pick_first.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-07-01 07:50:47 -0700
committerGravatar Craig Tiller <ctiller@google.com>2015-07-01 07:50:47 -0700
commitd2cc45970b4681e214214199b9f52fc0e83cc9e9 (patch)
treede86a4b8659cc1ca8b19a034d4cf17f4d4cfedbf /src/core/client_config/lb_policies/pick_first.c
parent6806e1e526b4b71561d0a2613aed8d180c269940 (diff)
Spam cleanup, properly shut down lb_policy
Diffstat (limited to 'src/core/client_config/lb_policies/pick_first.c')
-rw-r--r--src/core/client_config/lb_policies/pick_first.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/core/client_config/lb_policies/pick_first.c b/src/core/client_config/lb_policies/pick_first.c
index ffdae75b28..3967350a9b 100644
--- a/src/core/client_config/lb_policies/pick_first.c
+++ b/src/core/client_config/lb_policies/pick_first.c
@@ -85,8 +85,16 @@ void pf_destroy(grpc_lb_policy *pol) {
}
void pf_shutdown(grpc_lb_policy *pol) {
- /* pick_first_lb_policy *p = (pick_first_lb_policy*)pol; */
- abort();
+ pick_first_lb_policy *p = (pick_first_lb_policy*)pol;
+ pending_pick *pp;
+ gpr_mu_lock(&p->mu);
+ while ((pp = p->pending_picks)) {
+ p->pending_picks = pp->next;
+ *pp->target = NULL;
+ grpc_iomgr_add_delayed_callback(pp->on_complete, 0);
+ gpr_free(pp);
+ }
+ gpr_mu_unlock(&p->mu);
}
void pf_pick(grpc_lb_policy *pol, grpc_pollset *pollset,