#include <v8-platform.h>
V8 Platform abstraction layer.
The embedder has to provide an implementation of this interface before initializing the rest of V8.
- Examples
- process.cc, and shell.cc.
◆ StackTracePrinter
typedef void(* v8::Platform::StackTracePrinter) () |
◆ ExpectedRuntime
This enum is used to indicate whether a task is potentially long running, or causes a long wait. The embedder might want to use this hint to decide whether to execute the task on a dedicated thread.
Enumerator |
---|
kShortRunningTask | |
kLongRunningTask | |
◆ ~Platform()
virtual v8::Platform::~Platform |
( |
| ) |
|
|
virtualdefault |
◆ CallDelayedOnForegroundThread()
virtual void v8::Platform::CallDelayedOnForegroundThread |
( |
Isolate * |
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.
◆ CallIdleOnForegroundThread()
virtual void v8::Platform::CallIdleOnForegroundThread |
( |
Isolate * |
isolate, |
|
|
IdleTask * |
task |
|
) |
| |
|
inlinevirtual |
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.
◆ CallOnBackgroundThread()
virtual void v8::Platform::CallOnBackgroundThread |
( |
Task * |
task, |
|
|
ExpectedRuntime |
expected_runtime |
|
) |
| |
|
pure virtual |
Schedules a task to be invoked on a background thread. |expected_runtime| indicates that the task will run a long time. The Platform implementation takes ownership of |task|. There is no guarantee about order of execution of tasks wrt order of scheduling, nor is there a guarantee about the thread the task will be run on.
◆ CallOnForegroundThread()
virtual void v8::Platform::CallOnForegroundThread |
( |
Isolate * |
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.
◆ CurrentClockTimeMillis()
virtual double v8::Platform::CurrentClockTimeMillis |
( |
| ) |
|
|
inlinevirtual |
Current wall-clock time in milliseconds since epoch. This function is expected to return at least millisecond-precision values.
◆ GetStackTracePrinter()
Returns a function pointer that print a stack trace of the current stack on invocation. Disables printing of the stack trace if nullptr.
◆ GetTracingController()
◆ IdleTasksEnabled()
virtual bool v8::Platform::IdleTasksEnabled |
( |
Isolate * |
isolate | ) |
|
|
inlinevirtual |
Returns true if idle tasks are enabled for the given |isolate|.
◆ 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.
◆ NumberOfAvailableBackgroundThreads()
virtual size_t v8::Platform::NumberOfAvailableBackgroundThreads |
( |
| ) |
|
|
inlinevirtual |
Gets the number of threads that are used to execute background tasks. Is used to estimate the number of tasks a work package should be split into. A return value of 0 means that there are no background threads available. Note that a value of 0 won't prohibit V8 from posting tasks using |CallOnBackgroundThread|.
◆ OnCriticalMemoryPressure()
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.
◆ SystemClockTimeMillis()
static double v8::Platform::SystemClockTimeMillis |
( |
| ) |
|
|
staticprotected |
Default implementation of current wall-clock time in milliseconds since epoch. Useful for implementing |CurrentClockTimeMillis| if nothing special needed.
The documentation for this class was generated from the following file: