Esempio n. 1
0
static void continue_picking(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
  continue_picking_args *cpa = arg;
  if (!success) {
    grpc_exec_ctx_enqueue(exec_ctx, cpa->on_ready, false, NULL);
  } else if (cpa->connected_subchannel == NULL) {
    /* cancelled, do nothing */
  } else if (cc_pick_subchannel(exec_ctx, cpa->elem, cpa->initial_metadata,
                                cpa->connected_subchannel, cpa->on_ready)) {
    grpc_exec_ctx_enqueue(exec_ctx, cpa->on_ready, true, NULL);
  }
  gpr_free(cpa);
}
Esempio n. 2
0
static void continue_picking(grpc_exec_ctx *exec_ctx, void *arg,
                             grpc_error *error) {
  continue_picking_args *cpa = arg;
  if (cpa->connected_subchannel == NULL) {
    /* cancelled, do nothing */
  } else if (error != GRPC_ERROR_NONE) {
    grpc_exec_ctx_sched(exec_ctx, cpa->on_ready, GRPC_ERROR_REF(error), NULL);
  } else if (cc_pick_subchannel(exec_ctx, cpa->elem, cpa->initial_metadata,
                                cpa->initial_metadata_flags,
                                cpa->connected_subchannel, cpa->on_ready)) {
    grpc_exec_ctx_sched(exec_ctx, cpa->on_ready, GRPC_ERROR_NONE, NULL);
  }
  gpr_free(cpa);
}