|  | @@ -346,6 +346,8 @@ grpc_error *grpc_call_create(grpc_exec_ctx *exec_ctx,
 | 
	
		
			
				|  |  |    gpr_timespec send_deadline =
 | 
	
		
			
				|  |  |        gpr_convert_clock_type(args->send_deadline, GPR_CLOCK_MONOTONIC);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  bool immediately_cancel = false;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    if (args->parent_call != NULL) {
 | 
	
		
			
				|  |  |      child_call *cc = call->child_call =
 | 
	
		
			
				|  |  |          gpr_arena_alloc(arena, sizeof(child_call));
 | 
	
	
		
			
				|  | @@ -386,8 +388,7 @@ grpc_error *grpc_call_create(grpc_exec_ctx *exec_ctx,
 | 
	
		
			
				|  |  |      if (args->propagation_mask & GRPC_PROPAGATE_CANCELLATION) {
 | 
	
		
			
				|  |  |        call->cancellation_is_inherited = 1;
 | 
	
		
			
				|  |  |        if (gpr_atm_acq_load(&args->parent_call->received_final_op_atm)) {
 | 
	
		
			
				|  |  | -        cancel_with_error(exec_ctx, call, STATUS_FROM_API_OVERRIDE,
 | 
	
		
			
				|  |  | -                          GRPC_ERROR_CANCELLED);
 | 
	
		
			
				|  |  | +        immediately_cancel = true;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -422,6 +423,10 @@ grpc_error *grpc_call_create(grpc_exec_ctx *exec_ctx,
 | 
	
		
			
				|  |  |      cancel_with_error(exec_ctx, call, STATUS_FROM_SURFACE,
 | 
	
		
			
				|  |  |                        GRPC_ERROR_REF(error));
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +  if (immediately_cancel) {
 | 
	
		
			
				|  |  | +    cancel_with_error(exec_ctx, call, STATUS_FROM_API_OVERRIDE,
 | 
	
		
			
				|  |  | +                      GRPC_ERROR_CANCELLED);
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |    if (args->cq != NULL) {
 | 
	
		
			
				|  |  |      GPR_ASSERT(
 | 
	
		
			
				|  |  |          args->pollset_set_alternative == NULL &&
 |