diff options
author | 2018-01-03 17:42:52 -0800 | |
---|---|---|
committer | 2018-01-03 17:48:30 -0800 | |
commit | 1d2f23b338fee1a88db63bc5728bbe23065fbba7 (patch) | |
tree | b0a5b8fe0bee4d5ef2d071e945266d916f298420 /src/core/lib/channel | |
parent | fb505cc7c76cf5ec73cae16d146374e74aec5e30 (diff) |
Register tracers, not (sub)channels
Diffstat (limited to 'src/core/lib/channel')
-rw-r--r-- | src/core/lib/channel/channel_tracer.cc | 30 | ||||
-rw-r--r-- | src/core/lib/channel/channel_tracer.h | 16 |
2 files changed, 20 insertions, 26 deletions
diff --git a/src/core/lib/channel/channel_tracer.cc b/src/core/lib/channel/channel_tracer.cc index 31c1d842a0..931f4b32b5 100644 --- a/src/core/lib/channel/channel_tracer.cc +++ b/src/core/lib/channel/channel_tracer.cc @@ -25,7 +25,6 @@ #include <stdlib.h> #include <string.h> -#include "src/core/ext/filters/client_channel/subchannel.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/slice/slice_internal.h" #include "src/core/lib/support/object_registry.h" @@ -62,12 +61,11 @@ struct grpc_channel_tracer { }; #ifndef NDEBUG -grpc_channel_tracer* grpc_channel_tracer_create(size_t max_nodes, intptr_t uuid, +grpc_channel_tracer* grpc_channel_tracer_create(size_t max_nodes, const char* file, int line, const char* func) { #else -grpc_channel_tracer* grpc_channel_tracer_create(size_t max_nodes, - intptr_t uuid) { +grpc_channel_tracer* grpc_channel_tracer_create(size_t max_nodes) { #endif grpc_channel_tracer* tracer = static_cast<grpc_channel_tracer*>( gpr_zalloc(sizeof(grpc_channel_tracer))); @@ -78,7 +76,8 @@ grpc_channel_tracer* grpc_channel_tracer_create(size_t max_nodes, gpr_log(GPR_DEBUG, "%p create [%s:%d %s]", tracer, file, line, func); } #endif - tracer->channel_uuid = uuid; + tracer->channel_uuid = grpc_object_registry_register_object( + tracer, GRPC_OBJECT_REGISTRY_CHANNEL_TRACER); tracer->max_list_size = max_nodes; tracer->time_created = gpr_now(GPR_CLOCK_REALTIME); return tracer; @@ -145,6 +144,10 @@ void grpc_channel_tracer_unref(grpc_channel_tracer* tracer) { } #endif +intptr_t grpc_channel_tracer_get_uuid(grpc_channel_tracer* tracer) { + return tracer->channel_uuid; +} + void grpc_channel_tracer_add_trace(grpc_channel_tracer* tracer, grpc_slice data, grpc_error* error, grpc_connectivity_state connectivity_state, @@ -318,18 +321,7 @@ char* grpc_channel_tracer_get_trace(intptr_t uuid, bool recursive) { void* object; grpc_object_registry_type type = grpc_object_registry_get_object(uuid, &object); - GPR_ASSERT(type == GRPC_OBJECT_REGISTRY_CHANNEL || - type == GPRC_OBJECT_REGISTRY_SUBCHANNEL); - switch (type) { - case GRPC_OBJECT_REGISTRY_CHANNEL: - return grpc_channel_get_trace(static_cast<grpc_channel*>(object), - recursive); - break; - case GPRC_OBJECT_REGISTRY_SUBCHANNEL: - return grpc_subchannel_get_trace(static_cast<grpc_subchannel*>(object), - recursive); - break; - default: - abort(); - } + GPR_ASSERT(type == GRPC_OBJECT_REGISTRY_CHANNEL_TRACER); + return grpc_channel_tracer_render_trace( + static_cast<grpc_channel_tracer*>(object), recursive); } diff --git a/src/core/lib/channel/channel_tracer.h b/src/core/lib/channel/channel_tracer.h index 34bb242ca0..5c34f1bc44 100644 --- a/src/core/lib/channel/channel_tracer.h +++ b/src/core/lib/channel/channel_tracer.h @@ -30,16 +30,15 @@ extern grpc_core::DebugOnlyTraceFlag grpc_trace_channel_tracer_refcount; /* Creates a new tracer. The caller owns a reference to the returned tracer. */ #ifndef NDEBUG -grpc_channel_tracer* grpc_channel_tracer_create(size_t max_nodes, intptr_t uuid, +grpc_channel_tracer* grpc_channel_tracer_create(size_t max_nodes, const char* file, int line, const char* func); -#define GRPC_CHANNEL_TRACER_CREATE(max_nodes, id) \ - grpc_channel_tracer_create(max_nodes, id, __FILE__, __LINE__, __func__) +#define GRPC_CHANNEL_TRACER_CREATE(max_nodes) \ + grpc_channel_tracer_create(max_nodes, __FILE__, __LINE__, __func__) #else -grpc_channel_tracer* grpc_channel_tracer_create(size_t max_nodes, - intptr_t uuid); -#define GRPC_CHANNEL_TRACER_CREATE(max_nodes, id) \ - grpc_channel_tracer_create(max_nodes, id) +grpc_channel_tracer* grpc_channel_tracer_create(size_t max_nodes); +#define GRPC_CHANNEL_TRACER_CREATE(max_nodes) \ + grpc_channel_tracer_create(max_nodes) #endif #ifndef NDEBUG @@ -59,6 +58,9 @@ void grpc_channel_tracer_unref(grpc_channel_tracer* tracer); #define GRPC_CHANNEL_TRACER_UNREF(tracer) grpc_channel_tracer_unref(tracer) #endif +/* returns the tracers uuid */ +intptr_t grpc_channel_tracer_get_uuid(grpc_channel_tracer* tracer); + /* Adds a new trace node to the tracing object */ void grpc_channel_tracer_add_trace(grpc_channel_tracer* tracer, grpc_slice data, grpc_error* error, |