|
|
|
@ -416,14 +416,14 @@ static void lb_token_destroy(void *token) { |
|
|
|
|
/* perform a pick over \a rr_policy. Given that a pick can return immediately
|
|
|
|
|
* (ignoring its completion callback) we need to perform the cleanups this |
|
|
|
|
* callback would be otherwise resposible for */ |
|
|
|
|
static bool pick_from_internal_rr_locked(grpc_exec_ctx *exec_ctx, grpc_lb_policy* rr_policy, |
|
|
|
|
static bool pick_from_internal_rr_locked( |
|
|
|
|
grpc_exec_ctx *exec_ctx, grpc_lb_policy *rr_policy, |
|
|
|
|
const grpc_lb_policy_pick_args *pick_args, |
|
|
|
|
grpc_connected_subchannel **target, |
|
|
|
|
wrapped_rr_closure_arg *wc_arg) { |
|
|
|
|
grpc_connected_subchannel **target, wrapped_rr_closure_arg *wc_arg) { |
|
|
|
|
GPR_ASSERT(rr_policy != NULL); |
|
|
|
|
const bool pick_done = grpc_lb_policy_pick(exec_ctx, rr_policy, pick_args, |
|
|
|
|
target, (void **)&wc_arg->lb_token, |
|
|
|
|
&wc_arg->wrapper_closure); |
|
|
|
|
const bool pick_done = |
|
|
|
|
grpc_lb_policy_pick(exec_ctx, rr_policy, pick_args, target, |
|
|
|
|
(void **)&wc_arg->lb_token, &wc_arg->wrapper_closure); |
|
|
|
|
if (pick_done) { |
|
|
|
|
/* synchronous grpc_lb_policy_pick call. Unref the RR policy. */ |
|
|
|
|
if (grpc_lb_glb_trace) { |
|
|
|
|