V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
v8::Platform Class Referenceabstract

#include <v8-platform.h>

Inheritance diagram for v8::Platform:
v8::DelayedTasksPlatform v8::PredictablePlatform

Public Types

typedef void(* StackTracePrinter) ()
 

Public Member Functions

virtual PageAllocatorGetPageAllocator ()
 
virtual void OnCriticalMemoryPressure ()
 
virtual bool OnCriticalMemoryPressure (size_t length)
 
virtual int NumberOfWorkerThreads ()=0
 
virtual std::shared_ptr< v8::TaskRunnerGetForegroundTaskRunner (Isolate *isolate)=0
 
virtual void CallOnWorkerThread (std::unique_ptr< Task > task)=0
 
virtual void CallBlockingTaskOnWorkerThread (std::unique_ptr< Task > task)
 
virtual void CallDelayedOnWorkerThread (std::unique_ptr< Task > task, double delay_in_seconds)=0
 
 V8_DEPRECATE_SOON ("Use a taskrunner acquired by GetForegroundTaskRunner instead.", virtual void CallOnForegroundThread(Isolate *isolate, Task *task))=0
 
 V8_DEPRECATE_SOON ("Use a taskrunner acquired by GetForegroundTaskRunner instead.", virtual void CallDelayedOnForegroundThread(Isolate *isolate, Task *task, double delay_in_seconds))=0
 
 V8_DEPRECATE_SOON ("Use a taskrunner acquired by GetForegroundTaskRunner instead.", virtual void CallIdleOnForegroundThread(Isolate *isolate, IdleTask *task))
 
virtual bool IdleTasksEnabled (Isolate *isolate)
 
virtual double MonotonicallyIncreasingTime ()=0
 
virtual double CurrentClockTimeMillis ()=0
 
virtual StackTracePrinter GetStackTracePrinter ()
 
virtual TracingControllerGetTracingController ()=0
 
virtual void DumpWithoutCrashing ()
 

Static Protected Member Functions

static double SystemClockTimeMillis ()
 

Detailed Description

V8 Platform abstraction layer.

The embedder has to provide an implementation of this interface before initializing the rest of V8.

Definition at line 268 of file v8-platform.h.

Member Function Documentation

◆ CallBlockingTaskOnWorkerThread()

virtual void v8::Platform::CallBlockingTaskOnWorkerThread ( std::unique_ptr< Task task)
inlinevirtual

Schedules a task that blocks the main thread to be invoked with high-priority on a worker thread.

Definition at line 328 of file v8-platform.h.

◆ CallDelayedOnWorkerThread()

virtual void v8::Platform::CallDelayedOnWorkerThread ( std::unique_ptr< Task task,
double  delay_in_seconds 
)
pure virtual

Schedules a task to be invoked on a worker thread after |delay_in_seconds| expires.

Implemented in v8::DelayedTasksPlatform, and v8::PredictablePlatform.

◆ CallOnWorkerThread()

virtual void v8::Platform::CallOnWorkerThread ( std::unique_ptr< Task task)
pure virtual

Schedules a task to be invoked on a worker thread.

Implemented in v8::DelayedTasksPlatform, and v8::PredictablePlatform.

◆ CurrentClockTimeMillis()

virtual double v8::Platform::CurrentClockTimeMillis ( )
pure virtual

Current wall-clock time in milliseconds since epoch. This function is expected to return at least millisecond-precision values.

Implemented in v8::DelayedTasksPlatform, and v8::PredictablePlatform.

◆ DumpWithoutCrashing()

virtual void v8::Platform::DumpWithoutCrashing ( )
inlinevirtual

Tells the embedder to generate and upload a crashdump during an unexpected but non-critical scenario.

Definition at line 416 of file v8-platform.h.

◆ GetForegroundTaskRunner()

virtual std::shared_ptr<v8::TaskRunner> v8::Platform::GetForegroundTaskRunner ( Isolate *  isolate)
pure virtual

Returns a TaskRunner which can be used to post a task on the foreground. This function should only be called from a foreground thread.

Implemented in v8::DelayedTasksPlatform, and v8::PredictablePlatform.

◆ GetPageAllocator()

virtual PageAllocator* v8::Platform::GetPageAllocator ( )
inlinevirtual

Allows the embedder to manage memory page allocations.

Reimplemented in v8::DelayedTasksPlatform, and v8::PredictablePlatform.

Definition at line 275 of file v8-platform.h.

◆ GetStackTracePrinter()

virtual StackTracePrinter v8::Platform::GetStackTracePrinter ( )
inlinevirtual

Returns a function pointer that print a stack trace of the current stack on invocation. Disables printing of the stack trace if nullptr.

Definition at line 405 of file v8-platform.h.

◆ GetTracingController()

virtual TracingController* v8::Platform::GetTracingController ( )
pure virtual

Returns an instance of a v8::TracingController. This must be non-nullptr.

Implemented in v8::DelayedTasksPlatform, and v8::PredictablePlatform.

◆ IdleTasksEnabled()

virtual bool v8::Platform::IdleTasksEnabled ( Isolate *  isolate)
inlinevirtual

Returns true if idle tasks are enabled for the given |isolate|.

Reimplemented in v8::DelayedTasksPlatform, and v8::PredictablePlatform.

Definition at line 380 of file v8-platform.h.

◆ MonotonicallyIncreasingTime()

virtual double v8::Platform::MonotonicallyIncreasingTime ( )
pure virtual

Monotonically increasing time in seconds from an arbitrary fixed point in the past. This function is expected to return at least millisecond-precision values. For this reason, it is recommended that the fixed point be no further in the past than the epoch.

Implemented in v8::DelayedTasksPlatform, and v8::PredictablePlatform.

◆ NumberOfWorkerThreads()

virtual int v8::Platform::NumberOfWorkerThreads ( )
pure virtual

Gets the number of worker threads used by Call(BlockingTask)OnWorkerThread(). This can be used to estimate the number of tasks a work package should be split into. A return value of 0 means that there are no worker threads available. Note that a value of 0 won't prohibit V8 from posting tasks using |CallOnWorkerThread|.

Implemented in v8::DelayedTasksPlatform, and v8::PredictablePlatform.

◆ OnCriticalMemoryPressure() [1/2]

virtual void v8::Platform::OnCriticalMemoryPressure ( )
inlinevirtual

Enables the embedder to respond in cases where V8 can't allocate large blocks of memory. V8 retries the failed allocation once after calling this method. On success, execution continues; otherwise V8 exits with a fatal error. Embedder overrides of this function must NOT call back into V8.

Reimplemented in v8::DelayedTasksPlatform, and v8::PredictablePlatform.

Definition at line 287 of file v8-platform.h.

◆ OnCriticalMemoryPressure() [2/2]

virtual bool v8::Platform::OnCriticalMemoryPressure ( size_t  length)
inlinevirtual

Enables the embedder to respond in cases where V8 can't allocate large memory regions. The |length| parameter is the amount of memory needed. Returns true if memory is now available. Returns false if no memory could be made available. V8 will retry allocations until this method returns false.

Embedder overrides of this function must NOT call back into V8.

Reimplemented in v8::DelayedTasksPlatform, and v8::PredictablePlatform.

Definition at line 301 of file v8-platform.h.

◆ SystemClockTimeMillis()

double v8::Platform::SystemClockTimeMillis ( )
staticprotected

Default implementation of current wall-clock time in milliseconds since epoch. Useful for implementing |CurrentClockTimeMillis| if nothing special needed.

Definition at line 154 of file v8.cc.

◆ V8_DEPRECATE_SOON() [1/3]

v8::Platform::V8_DEPRECATE_SOON ( "Use a taskrunner acquired by GetForegroundTaskRunner instead."  ,
virtual void   CallOnForegroundThreadIsolate *isolate, Task *task 
)
pure virtual

Schedules a task to be invoked on a foreground thread wrt a specific |isolate|. Tasks posted for the same isolate should be execute in order of scheduling. The definition of "foreground" is opaque to V8.

◆ V8_DEPRECATE_SOON() [2/3]

v8::Platform::V8_DEPRECATE_SOON ( "Use a taskrunner acquired by GetForegroundTaskRunner instead."  ,
virtual void   CallDelayedOnForegroundThreadIsolate *isolate, Task *task, double delay_in_seconds 
)
pure virtual

Schedules a task to be invoked on a foreground thread wrt a specific |isolate| after the given number of seconds |delay_in_seconds|. Tasks posted for the same isolate should be execute in order of scheduling. The definition of "foreground" is opaque to V8.

◆ V8_DEPRECATE_SOON() [3/3]

v8::Platform::V8_DEPRECATE_SOON ( "Use a taskrunner acquired by GetForegroundTaskRunner instead."  ,
virtual void   CallIdleOnForegroundThreadIsolate *isolate, IdleTask *task 
)
inline

Schedules a task to be invoked on a foreground thread wrt a specific |isolate| when the embedder is idle. Requires that SupportsIdleTasks(isolate) is true. Idle tasks may be reordered relative to other task types and may be starved for an arbitrarily long time if no idle time is available. The definition of "foreground" is opaque to V8.

Definition at line 369 of file v8-platform.h.


The documentation for this class was generated from the following files: