aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/channel/subchannel_call_holder.c
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@users.noreply.github.com>2016-03-11 14:47:07 -0800
committerGravatar Jan Tattermusch <jtattermusch@users.noreply.github.com>2016-03-11 14:47:07 -0800
commit52676ba0c250f55828f9b590c0e215ec18a9344c (patch)
tree4138d2fda2bac9430632bdb53cbd02e1366291d2 /src/core/channel/subchannel_call_holder.c
parent4d52cca1ef29837c7610e31897240b6f4abd6991 (diff)
parentaad4156a0ba79d963bfa3cd37e48a1074f956809 (diff)
Merge pull request #5694 from nicolasnoble/pre-0.13.1-downmerge
Pre 0.13.1 downmerge
Diffstat (limited to 'src/core/channel/subchannel_call_holder.c')
-rw-r--r--src/core/channel/subchannel_call_holder.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/channel/subchannel_call_holder.c b/src/core/channel/subchannel_call_holder.c
index 81297c8d44..9c087dc2a1 100644
--- a/src/core/channel/subchannel_call_holder.c
+++ b/src/core/channel/subchannel_call_holder.c
@@ -168,15 +168,15 @@ retry:
static void subchannel_ready(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
grpc_subchannel_call_holder *holder = arg;
- grpc_subchannel_call *call;
gpr_mu_lock(&holder->mu);
GPR_ASSERT(holder->creation_phase ==
GRPC_SUBCHANNEL_CALL_HOLDER_PICKING_SUBCHANNEL);
- call = GET_CALL(holder);
- GPR_ASSERT(call == NULL || call == CANCELLED_CALL);
holder->creation_phase = GRPC_SUBCHANNEL_CALL_HOLDER_NOT_CREATING;
if (holder->connected_subchannel == NULL) {
fail_locked(exec_ctx, holder);
+ } else if (1 == gpr_atm_acq_load(&holder->subchannel_call)) {
+ /* already cancelled before subchannel became ready */
+ fail_locked(exec_ctx, holder);
} else {
gpr_atm_rel_store(
&holder->subchannel_call,