aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext/filters/client_channel/subchannel.cc
diff options
context:
space:
mode:
authorGravatar ncteisen <ncteisen@gmail.com>2018-07-13 11:22:08 -0700
committerGravatar ncteisen <ncteisen@gmail.com>2018-07-13 11:22:08 -0700
commit1e6c0b46bca8a57d0c3725107d1b6508ebf1e1c3 (patch)
tree688c882c8f74b27cbee2ceeca5617edaa24358cb /src/core/ext/filters/client_channel/subchannel.cc
parent9ff83ea77ab5fecfd7b57781f16b5d951b70b7c1 (diff)
Ensure subchannel channelz only created if enabled
Diffstat (limited to 'src/core/ext/filters/client_channel/subchannel.cc')
-rw-r--r--src/core/ext/filters/client_channel/subchannel.cc21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/core/ext/filters/client_channel/subchannel.cc b/src/core/ext/filters/client_channel/subchannel.cc
index 6c4f1869ea..0e349da3e2 100644
--- a/src/core/ext/filters/client_channel/subchannel.cc
+++ b/src/core/ext/filters/client_channel/subchannel.cc
@@ -135,10 +135,8 @@ struct grpc_subchannel {
/** our alarm */
grpc_timer alarm;
- /* the global uuid for this subchannel */
- // TODO(ncteisen): move this into SubchannelNode while implementing
- // GetSubchannel.
- intptr_t subchannel_uuid;
+ grpc_core::RefCountedPtr<grpc_core::channelz::SubchannelNode>
+ channelz_subchannel;
};
struct grpc_subchannel_call {
@@ -379,14 +377,21 @@ grpc_subchannel* grpc_subchannel_create(grpc_connector* connector,
c->backoff.Init(backoff_options);
gpr_mu_init(&c->mu);
- // This is just a placeholder for now
- c->subchannel_uuid = 42;
+ // This is just a placeholder channelz class for for now.
+ const grpc_arg* arg =
+ grpc_channel_args_find(c->args, GRPC_ARG_ENABLE_CHANNELZ);
+ bool channelz_enabled = grpc_channel_arg_get_bool(arg, false);
+ if (channelz_enabled) {
+ c->channelz_subchannel =
+ grpc_core::MakeRefCounted<grpc_core::channelz::SubchannelNode>();
+ }
return grpc_subchannel_index_register(key, c);
}
-intptr_t grpc_subchannel_get_uuid(grpc_subchannel* s) {
- return s->subchannel_uuid;
+grpc_core::channelz::SubchannelNode* grpc_subchannel_get_channelz_node(
+ grpc_subchannel* s) {
+ return s->channelz_subchannel.get();
}
static void continue_connect_locked(grpc_subchannel* c) {