aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-03-13 15:51:37 -0700
committerGravatar Craig Tiller <ctiller@google.com>2017-03-13 15:51:37 -0700
commitb18c8ba0b6bbc2317dd92353288f2b1c0ff353d5 (patch)
tree21b0057a2c6f3e5afec3cee58770b9ee7c2eec51 /src/core
parentc5b90df9b2738076acf6a6972d833489f6470335 (diff)
Fix cancellation
Diffstat (limited to 'src/core')
-rw-r--r--src/core/lib/surface/call.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/lib/surface/call.c b/src/core/lib/surface/call.c
index 8b2f9fd3f5..47f36be5fd 100644
--- a/src/core/lib/surface/call.c
+++ b/src/core/lib/surface/call.c
@@ -1070,8 +1070,8 @@ static void post_batch_completion(grpc_exec_ctx *exec_ctx,
&call->metadata_batch[1 /* is_receiving */][1 /* is_trailing */];
recv_trailing_filter(exec_ctx, call, md);
- gpr_atm_rel_store(&call->received_final_op_atm, 1);
/* propagate cancellation to any interested children */
+ gpr_atm_rel_store(&call->received_final_op_atm, 1);
gpr_mu_lock(&call->child_list_mu);
child_call = call->first_child;
if (child_call != NULL) {
@@ -1079,7 +1079,7 @@ static void post_batch_completion(grpc_exec_ctx *exec_ctx,
next_child_call = child_call->sibling_next;
if (child_call->cancellation_is_inherited) {
GRPC_CALL_INTERNAL_REF(child_call, "propagate_cancel");
- cancel_with_error(exec_ctx, call, STATUS_FROM_API_OVERRIDE,
+ cancel_with_error(exec_ctx, child_call, STATUS_FROM_API_OVERRIDE,
GRPC_ERROR_CANCELLED);
GRPC_CALL_INTERNAL_UNREF(exec_ctx, child_call, "propagate_cancel");
}