1313#include " src/base/platform/platform.h"
1414#include " src/base/platform/time.h"
1515#include " src/base/sys-info.h"
16+ #include " src/libplatform/tracing/trace-buffer.h"
17+ #include " src/libplatform/tracing/trace-writer.h"
1618#include " src/libplatform/worker-thread.h"
1719
1820namespace v8 {
@@ -36,11 +38,10 @@ v8::Platform* CreateDefaultPlatform(int thread_pool_size,
3638 if (in_process_stack_dumping == InProcessStackDumping::kEnabled ) {
3739 v8::base::debug::EnableInProcessStackDumping ();
3840 }
39- DefaultPlatform* platform = new DefaultPlatform (idle_task_support);
41+ DefaultPlatform* platform =
42+ new DefaultPlatform (idle_task_support, tracing_controller);
4043 platform->SetThreadPoolSize (thread_pool_size);
4144 platform->EnsureInitialized ();
42- if (tracing_controller != nullptr )
43- platform->SetTracingController (tracing_controller);
4445 return platform;
4546}
4647
@@ -70,10 +71,22 @@ void SetTracingController(
7071
7172const int DefaultPlatform::kMaxThreadPoolSize = 8 ;
7273
73- DefaultPlatform::DefaultPlatform (IdleTaskSupport idle_task_support)
74+ DefaultPlatform::DefaultPlatform (IdleTaskSupport idle_task_support,
75+ v8::TracingController* tracing_controller)
7476 : initialized_(false ),
7577 thread_pool_size_ (0 ),
76- idle_task_support_(idle_task_support) {}
78+ idle_task_support_(idle_task_support) {
79+ if (tracing_controller) {
80+ tracing_controller_.reset (tracing_controller);
81+ } else {
82+ tracing::TraceWriter* writer = new tracing::NullTraceWriter ();
83+ tracing::TraceBuffer* ring_buffer =
84+ new tracing::TraceBufferRingBuffer (1 , writer);
85+ tracing::TracingController* controller = new tracing::TracingController ();
86+ controller->Initialize (ring_buffer);
87+ tracing_controller_.reset (controller);
88+ }
89+ }
7790
7891DefaultPlatform::~DefaultPlatform () {
7992 base::LockGuard<base::Mutex> guard (&lock_);
@@ -274,64 +287,16 @@ TracingController* DefaultPlatform::GetTracingController() {
274287 return tracing_controller_.get ();
275288}
276289
277- uint64_t DefaultPlatform::AddTraceEvent (
278- char phase, const uint8_t * category_enabled_flag, const char * name,
279- const char * scope, uint64_t id, uint64_t bind_id, int num_args,
280- const char ** arg_names, const uint8_t * arg_types,
281- const uint64_t * arg_values,
282- std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
283- unsigned int flags) {
284- if (tracing_controller_) {
285- return tracing_controller_->AddTraceEvent (
286- phase, category_enabled_flag, name, scope, id, bind_id, num_args,
287- arg_names, arg_types, arg_values, arg_convertables, flags);
288- }
289-
290- return 0 ;
291- }
292-
293- void DefaultPlatform::UpdateTraceEventDuration (
294- const uint8_t * category_enabled_flag, const char * name, uint64_t handle) {
295- if (tracing_controller_) {
296- tracing_controller_->UpdateTraceEventDuration (category_enabled_flag, name,
297- handle);
298- }
299- }
300-
301- const uint8_t * DefaultPlatform::GetCategoryGroupEnabled (const char * name) {
302- if (tracing_controller_) {
303- return tracing_controller_->GetCategoryGroupEnabled (name);
304- }
305- static uint8_t no = 0 ;
306- return &no;
307- }
308-
309-
310- const char * DefaultPlatform::GetCategoryGroupName (
311- const uint8_t * category_enabled_flag) {
312- static const char dummy[] = " dummy" ;
313- return dummy;
314- }
315-
316290void DefaultPlatform::SetTracingController (
317- TracingController* tracing_controller) {
291+ v8::TracingController* tracing_controller) {
292+ DCHECK_NOT_NULL (tracing_controller);
318293 tracing_controller_.reset (tracing_controller);
319294}
320295
321296size_t DefaultPlatform::NumberOfAvailableBackgroundThreads () {
322297 return static_cast <size_t >(thread_pool_size_);
323298}
324299
325- void DefaultPlatform::AddTraceStateObserver (TraceStateObserver* observer) {
326- if (!tracing_controller_) return ;
327- tracing_controller_->AddTraceStateObserver (observer);
328- }
329-
330- void DefaultPlatform::RemoveTraceStateObserver (TraceStateObserver* observer) {
331- if (!tracing_controller_) return ;
332- tracing_controller_->RemoveTraceStateObserver (observer);
333- }
334-
335300Platform::StackTracePrinter DefaultPlatform::GetStackTracePrinter () {
336301 return PrintStackTrace;
337302}
0 commit comments