diff options
author | 2015-07-01 07:50:47 -0700 | |
---|---|---|
committer | 2015-07-01 07:50:47 -0700 | |
commit | d2cc45970b4681e214214199b9f52fc0e83cc9e9 (patch) | |
tree | de86a4b8659cc1ca8b19a034d4cf17f4d4cfedbf /src/core/client_config/lb_policies/pick_first.c | |
parent | 6806e1e526b4b71561d0a2613aed8d180c269940 (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.c | 12 |
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, |