Example #1
0
static void fake_resolver_channel_saw_error(grpc_exec_ctx* exec_ctx,
                                            grpc_resolver* resolver) {
  fake_resolver* r = (fake_resolver*)resolver;
  gpr_mu_lock(&r->mu);
  r->published = false;
  fake_resolver_maybe_finish_next_locked(exec_ctx, r);
  gpr_mu_unlock(&r->mu);
}
Example #2
0
static void fake_resolver_channel_saw_error_locked(grpc_exec_ctx* exec_ctx,
                                                   grpc_resolver* resolver) {
  fake_resolver* r = (fake_resolver*)resolver;
  if (r->next_results == NULL && r->results_upon_error != NULL) {
    // Pretend we re-resolved.
    r->next_results = grpc_channel_args_copy(r->results_upon_error);
  }
  fake_resolver_maybe_finish_next_locked(exec_ctx, r);
}
Example #3
0
static void fake_resolver_next_locked(grpc_exec_ctx* exec_ctx,
                                      grpc_resolver* resolver,
                                      grpc_channel_args** target_result,
                                      grpc_closure* on_complete) {
  fake_resolver* r = (fake_resolver*)resolver;
  GPR_ASSERT(!r->next_completion);
  r->next_completion = on_complete;
  r->target_result = target_result;
  fake_resolver_maybe_finish_next_locked(exec_ctx, r);
}
Example #4
0
static void fake_resolver_next(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
                               grpc_resolver_result** target_result,
                               grpc_closure* on_complete) {
  fake_resolver* r = (fake_resolver*)resolver;
  gpr_mu_lock(&r->mu);
  GPR_ASSERT(!r->next_completion);
  r->next_completion = on_complete;
  r->target_result = target_result;
  fake_resolver_maybe_finish_next_locked(exec_ctx, r);
  gpr_mu_unlock(&r->mu);
}
Example #5
0
static void set_response_cb(grpc_exec_ctx* exec_ctx, void* arg,
                            grpc_error* error) {
  grpc_fake_resolver_response_generator* generator =
      (grpc_fake_resolver_response_generator*)arg;
  fake_resolver* r = generator->resolver;
  if (r->next_results != NULL) {
    grpc_channel_args_destroy(exec_ctx, r->next_results);
  }
  r->next_results = generator->next_response;
  if (r->results_upon_error != NULL) {
    grpc_channel_args_destroy(exec_ctx, r->results_upon_error);
  }
  r->results_upon_error = grpc_channel_args_copy(generator->next_response);
  fake_resolver_maybe_finish_next_locked(exec_ctx, r);
}