v8  7.9.317 (node 13.2.0)
V8 is Google's open source JavaScript engine
v8::platform Namespace Reference

Namespaces

 tracing
 

Enumerations

enum class  IdleTaskSupport { kDisabled , kEnabled }
 
enum class  InProcessStackDumping { kDisabled , kEnabled }
 
enum class  MessageLoopBehavior : bool { kDoNotWait = false , kWaitForWork = true }
 

Functions

V8_PLATFORM_EXPORT std::unique_ptr< v8::PlatformNewDefaultPlatform (int thread_pool_size=0, IdleTaskSupport idle_task_support=IdleTaskSupport::kDisabled, InProcessStackDumping in_process_stack_dumping=InProcessStackDumping::kDisabled, std::unique_ptr< v8::TracingController > tracing_controller={})
 
V8_PLATFORM_EXPORT bool PumpMessageLoop (v8::Platform *platform, v8::Isolate *isolate, MessageLoopBehavior behavior=MessageLoopBehavior::kDoNotWait)
 
V8_PLATFORM_EXPORT void RunIdleTasks (v8::Platform *platform, v8::Isolate *isolate, double idle_time_in_seconds)
 
V8_PLATFORM_EXPORT void SetTracingController (v8::Platform *platform, v8::platform::tracing::TracingController *tracing_controller)
 

Enumeration Type Documentation

◆ IdleTaskSupport

enum IdleTaskSupport
strong
Enumerator
kDisabled 
kEnabled 

Definition at line 18 of file libplatform.h.

◆ InProcessStackDumping

enum InProcessStackDumping
strong
Enumerator
kDisabled 
kEnabled 

Definition at line 19 of file libplatform.h.

◆ MessageLoopBehavior

enum MessageLoopBehavior : bool
strong
Enumerator
kDoNotWait 
kWaitForWork 

Definition at line 21 of file libplatform.h.

Function Documentation

◆ NewDefaultPlatform()

V8_PLATFORM_EXPORT std::unique_ptr<v8::Platform> v8::platform::NewDefaultPlatform ( int  thread_pool_size = 0,
IdleTaskSupport  idle_task_support = IdleTaskSupport::kDisabled,
InProcessStackDumping  in_process_stack_dumping = InProcessStackDumping::kDisabled,
std::unique_ptr< v8::TracingController tracing_controller = {} 
)

Returns a new instance of the default v8::Platform implementation.

The caller will take ownership of the returned pointer. |thread_pool_size| is the number of worker threads to allocate for background jobs. If a value of zero is passed, a suitable default based on the current number of processors online will be chosen. If |idle_task_support| is enabled then the platform will accept idle tasks (IdleTasksEnabled will return true) and will rely on the embedder calling v8::platform::RunIdleTasks to process the idle tasks. If |tracing_controller| is nullptr, the default platform will create a v8::platform::TracingController instance and use it.

◆ PumpMessageLoop()

V8_PLATFORM_EXPORT bool v8::platform::PumpMessageLoop ( v8::Platform platform,
v8::Isolate isolate,
MessageLoopBehavior  behavior = MessageLoopBehavior::kDoNotWait 
)

Pumps the message loop for the given isolate.

The caller has to make sure that this is called from the right thread. Returns true if a task was executed, and false otherwise. Unless requested through the |behavior| parameter, this call does not block if no task is pending. The |platform| has to be created using |NewDefaultPlatform|.

◆ RunIdleTasks()

V8_PLATFORM_EXPORT void v8::platform::RunIdleTasks ( v8::Platform platform,
v8::Isolate isolate,
double  idle_time_in_seconds 
)

Runs pending idle tasks for at most |idle_time_in_seconds| seconds.

The caller has to make sure that this is called from the right thread. This call does not block if no task is pending. The |platform| has to be created using |NewDefaultPlatform|.

◆ SetTracingController()

V8_PLATFORM_EXPORT void v8::platform::SetTracingController ( v8::Platform platform,
v8::platform::tracing::TracingController tracing_controller 
)

Attempts to set the tracing controller for the given platform.

The |platform| has to be created using |NewDefaultPlatform|.