aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext/lb_policy/round_robin
diff options
context:
space:
mode:
authorGravatar David Garcia Quintas <dgq@google.com>2016-09-15 16:14:15 -0700
committerGravatar David Garcia Quintas <dgq@google.com>2016-09-15 16:14:15 -0700
commit155b8200d40c51981f09ec321b929a5e68c382c4 (patch)
tree19ad5aed674bff6437b3bb58f4181077051c51c8 /src/core/ext/lb_policy/round_robin
parent24869d558af46a76be9ed83d40f0f82a329fb46b (diff)
Round Robin user_data fix
Diffstat (limited to 'src/core/ext/lb_policy/round_robin')
-rw-r--r--src/core/ext/lb_policy/round_robin/round_robin.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/core/ext/lb_policy/round_robin/round_robin.c b/src/core/ext/lb_policy/round_robin/round_robin.c
index 4434165ff9..a9c37ac0f1 100644
--- a/src/core/ext/lb_policy/round_robin/round_robin.c
+++ b/src/core/ext/lb_policy/round_robin/round_robin.c
@@ -404,7 +404,10 @@ static int rr_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
/* readily available, report right away */
gpr_mu_unlock(&p->mu);
*target = grpc_subchannel_get_connected_subchannel(selected->subchannel);
- *user_data = selected->user_data;
+
+ if (user_data != NULL) {
+ *user_data = selected->user_data;
+ }
if (grpc_lb_round_robin_trace) {
gpr_log(GPR_DEBUG,
"[RR PICK] TARGET <-- CONNECTED SUBCHANNEL %p (NODE %p)",
@@ -470,7 +473,9 @@ static void rr_connectivity_changed(grpc_exec_ctx *exec_ctx, void *arg,
*pp->target =
grpc_subchannel_get_connected_subchannel(selected->subchannel);
- *pp->user_data = selected->user_data;
+ if (pp->user_data != NULL) {
+ *pp->user_data = selected->user_data;
+ }
if (grpc_lb_round_robin_trace) {
gpr_log(GPR_DEBUG,
"[RR CONN CHANGED] TARGET <-- SUBCHANNEL %p (NODE %p)",