|
|
|
@ -962,6 +962,7 @@ static void post_batch_completion(grpc_exec_ctx *exec_ctx, |
|
|
|
|
batch_control *bctl) { |
|
|
|
|
grpc_call *call = bctl->call; |
|
|
|
|
if (bctl->is_notify_tag_closure) { |
|
|
|
|
/* unrefs bctl->error */ |
|
|
|
|
grpc_exec_ctx_push(exec_ctx, bctl->notify_tag, bctl->error, NULL); |
|
|
|
|
gpr_mu_lock(&call->mu); |
|
|
|
|
bctl->call->used_batches = |
|
|
|
@ -970,6 +971,7 @@ static void post_batch_completion(grpc_exec_ctx *exec_ctx, |
|
|
|
|
gpr_mu_unlock(&call->mu); |
|
|
|
|
GRPC_CALL_INTERNAL_UNREF(exec_ctx, call, "completion"); |
|
|
|
|
} else { |
|
|
|
|
/* unrefs bctl->error */ |
|
|
|
|
grpc_cq_end_op(exec_ctx, bctl->call->cq, bctl->notify_tag, bctl->error, |
|
|
|
|
finish_batch_completion, bctl, &bctl->cq_completion); |
|
|
|
|
} |
|
|
|
@ -1173,7 +1175,7 @@ static void finish_batch(grpc_exec_ctx *exec_ctx, void *bctlp, |
|
|
|
|
error = GRPC_ERROR_NONE; |
|
|
|
|
} |
|
|
|
|
GRPC_ERROR_UNREF(bctl->error); |
|
|
|
|
bctl->error = error; |
|
|
|
|
bctl->error = GRPC_ERROR_REF(error); |
|
|
|
|
gpr_mu_unlock(&call->mu); |
|
|
|
|
if (gpr_unref(&bctl->steps_to_complete)) { |
|
|
|
|
post_batch_completion(exec_ctx, bctl); |
|
|
|
|