v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::PredictablePlatform Class Referencefinal
Inheritance diagram for v8::PredictablePlatform:
Collaboration diagram for v8::PredictablePlatform:

Public Member Functions

 PredictablePlatform (std::unique_ptr< Platform > platform)
 
 PredictablePlatform (const PredictablePlatform &)=delete
 
PredictablePlatformoperator= (const PredictablePlatform &)=delete
 
PageAllocatorGetPageAllocator () override
 
void OnCriticalMemoryPressure () override
 
std::shared_ptr< TaskRunnerGetForegroundTaskRunner (v8::Isolate *isolate, TaskPriority priority) override
 
int NumberOfWorkerThreads () override
 
void PostTaskOnWorkerThreadImpl (TaskPriority priority, std::unique_ptr< Task > task, const SourceLocation &location) override
 
void PostDelayedTaskOnWorkerThreadImpl (TaskPriority priority, std::unique_ptr< Task > task, double delay_in_seconds, const SourceLocation &location) override
 
bool IdleTasksEnabled (Isolate *isolate) override
 
std::unique_ptr< JobHandleCreateJobImpl (TaskPriority priority, std::unique_ptr< JobTask > job_task, const SourceLocation &location) override
 
double MonotonicallyIncreasingTime () override
 
double CurrentClockTimeMillis () override
 
v8::TracingControllerGetTracingController () override
 
Platformplatform () const
 
- Public Member Functions inherited from v8::Platform
virtual ~Platform ()=default
 
virtual ThreadIsolatedAllocatorGetThreadIsolatedAllocator ()
 
std::shared_ptr< v8::TaskRunnerGetForegroundTaskRunner (Isolate *isolate)
 
void CallOnWorkerThread (std::unique_ptr< Task > task, const SourceLocation &location=SourceLocation::Current())
 
void CallBlockingTaskOnWorkerThread (std::unique_ptr< Task > task, const SourceLocation &location=SourceLocation::Current())
 
void CallLowPriorityTaskOnWorkerThread (std::unique_ptr< Task > task, const SourceLocation &location=SourceLocation::Current())
 
void CallDelayedOnWorkerThread (std::unique_ptr< Task > task, double delay_in_seconds, const SourceLocation &location=SourceLocation::Current())
 
void PostTaskOnWorkerThread (TaskPriority priority, std::unique_ptr< Task > task, const SourceLocation &location=SourceLocation::Current())
 
void PostDelayedTaskOnWorkerThread (TaskPriority priority, std::unique_ptr< Task > task, double delay_in_seconds, const SourceLocation &location=SourceLocation::Current())
 
std::unique_ptr< JobHandlePostJob (TaskPriority priority, std::unique_ptr< JobTask > job_task, const SourceLocation &location=SourceLocation::Current())
 
std::unique_ptr< JobHandleCreateJob (TaskPriority priority, std::unique_ptr< JobTask > job_task, const SourceLocation &location=SourceLocation::Current())
 
virtual std::unique_ptr< ScopedBlockingCallCreateBlockingScope (BlockingType blocking_type)
 
virtual int64_t CurrentClockTimeMilliseconds ()
 
virtual double CurrentClockTimeMillisecondsHighResolution ()
 
virtual StackTracePrinter GetStackTracePrinter ()
 
virtual void DumpWithoutCrashing ()
 
virtual HighAllocationThroughputObserverGetHighAllocationThroughputObserver ()
 

Private Attributes

std::atomic< uint64_t > synthetic_time_ {0}
 
std::unique_ptr< Platformplatform_
 

Additional Inherited Members

- Public Types inherited from v8::Platform
typedef void(*) StackTracePrinter()
 
- Protected Member Functions inherited from v8::Platform
- Static Protected Member Functions inherited from v8::Platform
static V8_EXPORT double SystemClockTimeMillis ()
 

Detailed Description

Definition at line 21 of file d8-platforms.cc.

Constructor & Destructor Documentation

◆ PredictablePlatform() [1/2]

v8::PredictablePlatform::PredictablePlatform ( std::unique_ptr< Platform > platform)
inlineexplicit

Definition at line 23 of file d8-platforms.cc.

◆ PredictablePlatform() [2/2]

v8::PredictablePlatform::PredictablePlatform ( const PredictablePlatform & )
delete

Member Function Documentation

◆ CreateJobImpl()

std::unique_ptr< JobHandle > v8::PredictablePlatform::CreateJobImpl ( TaskPriority priority,
std::unique_ptr< JobTask > job_task,
const SourceLocation & location )
inlineoverridevirtual

Creates and returns a JobHandle associated with a Job.

Implements v8::Platform.

Definition at line 77 of file d8-platforms.cc.

Here is the call graph for this function:

◆ CurrentClockTimeMillis()

double v8::PredictablePlatform::CurrentClockTimeMillis ( )
inlineoverridevirtual

This function is deprecated and will be deleted. Use either CurrentClockTimeMilliseconds() or CurrentClockTimeMillisecondsHighResolution().

Implements v8::Platform.

Definition at line 97 of file d8-platforms.cc.

Here is the call graph for this function:

◆ GetForegroundTaskRunner()

std::shared_ptr< TaskRunner > v8::PredictablePlatform::GetForegroundTaskRunner ( v8::Isolate * isolate,
TaskPriority priority )
inlineoverridevirtual

Returns a TaskRunner with a specific |priority| which can be used to post a task on the foreground thread. The TaskRunner's NonNestableTasksEnabled() must be true. This function should only be called from a foreground thread.

Implements v8::Platform.

Definition at line 39 of file d8-platforms.cc.

◆ GetPageAllocator()

PageAllocator * v8::PredictablePlatform::GetPageAllocator ( )
inlineoverridevirtual

Allows the embedder to manage memory page allocations. Returning nullptr will cause V8 to use the default page allocator.

Reimplemented from v8::Platform.

Definition at line 31 of file d8-platforms.cc.

◆ GetTracingController()

v8::TracingController * v8::PredictablePlatform::GetTracingController ( )
inlineoverridevirtual

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

Implements v8::Platform.

Definition at line 101 of file d8-platforms.cc.

◆ IdleTasksEnabled()

bool v8::PredictablePlatform::IdleTasksEnabled ( Isolate * isolate)
inlineoverridevirtual

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

Reimplemented from v8::Platform.

Definition at line 75 of file d8-platforms.cc.

◆ MonotonicallyIncreasingTime()

double v8::PredictablePlatform::MonotonicallyIncreasingTime ( )
inlineoverridevirtual

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.

Implements v8::Platform.

Definition at line 86 of file d8-platforms.cc.

Here is the caller graph for this function:

◆ NumberOfWorkerThreads()

int v8::PredictablePlatform::NumberOfWorkerThreads ( )
inlineoverridevirtual

Gets the max number of worker threads that may be used to execute concurrent work scheduled for any single TaskPriority by Call(BlockingTask)OnWorkerThread() or PostJob(). 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|.

Implements v8::Platform.

Definition at line 44 of file d8-platforms.cc.

Here is the caller graph for this function:

◆ OnCriticalMemoryPressure()

void v8::PredictablePlatform::OnCriticalMemoryPressure ( )
inlineoverridevirtual

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 from v8::Platform.

Definition at line 35 of file d8-platforms.cc.

◆ operator=()

PredictablePlatform & v8::PredictablePlatform::operator= ( const PredictablePlatform & )
delete

◆ platform()

Platform * v8::PredictablePlatform::platform ( ) const
inline

Definition at line 105 of file d8-platforms.cc.

◆ PostDelayedTaskOnWorkerThreadImpl()

void v8::PredictablePlatform::PostDelayedTaskOnWorkerThreadImpl ( TaskPriority priority,
std::unique_ptr< Task > task,
double delay_in_seconds,
const SourceLocation & location )
inlineoverridevirtual

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

Implements v8::Platform.

Definition at line 69 of file d8-platforms.cc.

◆ PostTaskOnWorkerThreadImpl()

void v8::PredictablePlatform::PostTaskOnWorkerThreadImpl ( TaskPriority priority,
std::unique_ptr< Task > task,
const SourceLocation & location )
inlineoverridevirtual

Schedules a task with |priority| to be invoked on a worker thread.

Implements v8::Platform.

Definition at line 51 of file d8-platforms.cc.

Member Data Documentation

◆ platform_

std::unique_ptr<Platform> v8::PredictablePlatform::platform_
private

Definition at line 109 of file d8-platforms.cc.

◆ synthetic_time_

std::atomic<uint64_t> v8::PredictablePlatform::synthetic_time_ {0}
private

Definition at line 108 of file d8-platforms.cc.


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