aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/client_config/lb_policies/pick_first.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-09-21 17:15:19 -0700
committerGravatar Craig Tiller <ctiller@google.com>2015-09-21 17:15:19 -0700
commitba496454b2f0909a64845f1305f3b0a81073a4f1 (patch)
treed01a5956fb76ebd83d89fb6c14bf3f9cf082f727 /src/core/client_config/lb_policies/pick_first.c
parent294d0ecc05097753982e89f14bb0b63c67451038 (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.c4
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);