Index: src/libplatform/default-platform.cc |
diff --git a/src/libplatform/default-platform.cc b/src/libplatform/default-platform.cc |
index 71ee6bee980372a17ac6d33e5e16e794e1aa21be..2f81248ec189cefddeeb3ba7d12b898fdecdc7c4 100644 |
--- a/src/libplatform/default-platform.cc |
+++ b/src/libplatform/default-platform.cc |
@@ -29,11 +29,17 @@ bool PumpMessageLoop(v8::Platform* platform, v8::Isolate* isolate) { |
return reinterpret_cast<DefaultPlatform*>(platform)->PumpMessageLoop(isolate); |
} |
+void SetTracingController( |
+ v8::Platform* platform, |
+ v8::platform::tracing::TracingController* tracing_controller) { |
+ return reinterpret_cast<DefaultPlatform*>(platform)->SetTracingController( |
+ tracing_controller); |
+} |
+ |
const int DefaultPlatform::kMaxThreadPoolSize = 8; |
DefaultPlatform::DefaultPlatform() |
- : initialized_(false), thread_pool_size_(0) {} |
- |
+ : initialized_(false), thread_pool_size_(0), tracing_controller_(NULL) {} |
DefaultPlatform::~DefaultPlatform() { |
base::LockGuard<base::Mutex> guard(&lock_); |
@@ -57,6 +63,11 @@ DefaultPlatform::~DefaultPlatform() { |
i->second.pop(); |
} |
} |
+ |
+ if (tracing_controller_) { |
+ tracing_controller_->StopTracing(); |
+ delete tracing_controller_; |
+ } |
} |
@@ -173,15 +184,27 @@ uint64_t DefaultPlatform::AddTraceEvent( |
const char* scope, uint64_t id, uint64_t bind_id, int num_args, |
const char** arg_names, const uint8_t* arg_types, |
const uint64_t* arg_values, unsigned int flags) { |
+ if (tracing_controller_) { |
+ return tracing_controller_->AddTraceEvent( |
+ phase, category_enabled_flag, name, scope, id, bind_id, num_args, |
+ arg_names, arg_types, arg_values, flags); |
+ } |
+ |
return 0; |
} |
- |
void DefaultPlatform::UpdateTraceEventDuration( |
- const uint8_t* category_enabled_flag, const char* name, uint64_t handle) {} |
- |
+ const uint8_t* category_enabled_flag, const char* name, uint64_t handle) { |
+ if (tracing_controller_) { |
+ tracing_controller_->UpdateTraceEventDuration(category_enabled_flag, name, |
+ handle); |
+ } |
+} |
const uint8_t* DefaultPlatform::GetCategoryGroupEnabled(const char* name) { |
+ if (tracing_controller_) { |
+ return tracing_controller_->GetCategoryGroupEnabled(name); |
+ } |
static uint8_t no = 0; |
return &no; |
} |
@@ -193,6 +216,10 @@ const char* DefaultPlatform::GetCategoryGroupName( |
return dummy; |
} |
+void DefaultPlatform::SetTracingController( |
+ tracing::TracingController* tracing_controller) { |
+ tracing_controller_ = tracing_controller; |
+} |
size_t DefaultPlatform::NumberOfAvailableBackgroundThreads() { |
return static_cast<size_t>(thread_pool_size_); |