aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-03-14 06:55:44 -0700
committerGravatar Craig Tiller <ctiller@google.com>2017-03-14 06:55:44 -0700
commit2e0788ac76ee7bd6dcbcead1ca25d061c2c3abe7 (patch)
treeb756cf57e9a6a653b5fffa4a3df1f7edaa562df2 /src
parent350ef9a293a1288dca2172c52b9b87868b3c98e5 (diff)
Move config application to *just* prior to subchannel pick
- this is both the point where we *know* we have a config (or not), and the last moment before wait_until_ready-ness is not an issue
Diffstat (limited to 'src')
-rw-r--r--src/core/ext/client_channel/client_channel.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/core/ext/client_channel/client_channel.c b/src/core/ext/client_channel/client_channel.c
index d1ce186fec..f2475cf6ae 100644
--- a/src/core/ext/client_channel/client_channel.c
+++ b/src/core/ext/client_channel/client_channel.c
@@ -796,7 +796,6 @@ static void subchannel_ready_locked(grpc_exec_ctx *exec_ctx, void *arg,
} else {
/* Create call on subchannel. */
grpc_subchannel_call *subchannel_call = NULL;
- apply_final_configuration_locked(exec_ctx, elem);
grpc_error *new_error = grpc_connected_subchannel_create_call(
exec_ctx, calld->connected_subchannel, calld->pollent, calld->path,
calld->call_start_time, calld->deadline, &subchannel_call);
@@ -894,6 +893,7 @@ static bool pick_subchannel_locked(
}
GPR_ASSERT(error == GRPC_ERROR_NONE);
if (chand->lb_policy != NULL) {
+ apply_final_configuration_locked(exec_ctx, elem);
grpc_lb_policy *lb_policy = chand->lb_policy;
GRPC_LB_POLICY_REF(lb_policy, "pick_subchannel");
// If the application explicitly set wait_for_ready, use that.
@@ -1025,7 +1025,6 @@ static void start_transport_stream_op_locked_inner(grpc_exec_ctx *exec_ctx,
if (calld->creation_phase == GRPC_SUBCHANNEL_CALL_HOLDER_NOT_CREATING &&
calld->connected_subchannel != NULL) {
grpc_subchannel_call *subchannel_call = NULL;
- apply_final_configuration_locked(exec_ctx, elem);
grpc_error *error = grpc_connected_subchannel_create_call(
exec_ctx, calld->connected_subchannel, calld->pollent, calld->path,
calld->call_start_time, calld->deadline, &subchannel_call);