diff options
author | 2015-09-21 17:15:19 -0700 | |
---|---|---|
committer | 2015-09-21 17:15:19 -0700 | |
commit | ba496454b2f0909a64845f1305f3b0a81073a4f1 (patch) | |
tree | d01a5956fb76ebd83d89fb6c14bf3f9cf082f727 /src/core/client_config/lb_policies/pick_first.c | |
parent | 294d0ecc05097753982e89f14bb0b63c67451038 (diff) |
Fixes
Diffstat (limited to 'src/core/client_config/lb_policies/pick_first.c')
-rw-r--r-- | src/core/client_config/lb_policies/pick_first.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/core/client_config/lb_policies/pick_first.c b/src/core/client_config/lb_policies/pick_first.c index 8ea774bebc..c9a200eb8c 100644 --- a/src/core/client_config/lb_policies/pick_first.c +++ b/src/core/client_config/lb_policies/pick_first.c @@ -97,7 +97,7 @@ static void add_interested_parties_locked(pick_first_lb_policy *p, void pf_destroy(grpc_lb_policy *pol, grpc_call_list *call_list) { pick_first_lb_policy *p = (pick_first_lb_policy *)pol; size_t i; - GPR_ASSERT(p->shutdown); + GPR_ASSERT(p->pending_picks == NULL); for (i = 0; i < p->num_subchannels; i++) { GRPC_SUBCHANNEL_UNREF(p->subchannels[i], "pick_first", call_list); } @@ -180,7 +180,9 @@ static void pf_connectivity_changed(void *arg, int iomgr_success, gpr_mu_lock(&p->mu); if (p->shutdown) { + gpr_mu_unlock(&p->mu); GRPC_LB_POLICY_UNREF(&p->base, "pick_first_connectivity", call_list); + return; } else if (p->selected != NULL) { grpc_connectivity_state_set(&p->state_tracker, p->checking_connectivity, "selected_changed", call_list); |