V8 Project
v8-platform.h
Go to the documentation of this file.
1
// Copyright 2013 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#ifndef V8_V8_PLATFORM_H_
6
#define V8_V8_PLATFORM_H_
7
8
namespace
v8
{
9
10
class
Isolate;
11
12
/**
13
* A Task represents a unit of work.
14
*/
15
class
Task
{
16
public
:
17
virtual
~Task
() {}
18
19
virtual
void
Run
() = 0;
20
};
21
22
/**
23
* V8 Platform abstraction layer.
24
*
25
* The embedder has to provide an implementation of this interface before
26
* initializing the rest of V8.
27
*/
28
class
Platform
{
29
public
:
30
/**
31
* This enum is used to indicate whether a task is potentially long running,
32
* or causes a long wait. The embedder might want to use this hint to decide
33
* whether to execute the task on a dedicated thread.
34
*/
35
enum
ExpectedRuntime
{
36
kShortRunningTask
,
37
kLongRunningTask
38
};
39
40
virtual
~Platform
() {}
41
42
/**
43
* Schedules a task to be invoked on a background thread. |expected_runtime|
44
* indicates that the task will run a long time. The Platform implementation
45
* takes ownership of |task|. There is no guarantee about order of execution
46
* of tasks wrt order of scheduling, nor is there a guarantee about the
47
* thread the task will be run on.
48
*/
49
virtual
void
CallOnBackgroundThread
(
Task
* task,
50
ExpectedRuntime
expected_runtime) = 0;
51
52
/**
53
* Schedules a task to be invoked on a foreground thread wrt a specific
54
* |isolate|. Tasks posted for the same isolate should be execute in order of
55
* scheduling. The definition of "foreground" is opaque to V8.
56
*/
57
virtual
void
CallOnForegroundThread
(
Isolate
* isolate,
Task
* task) = 0;
58
};
59
60
}
// namespace v8
61
62
#endif
// V8_V8_PLATFORM_H_
v8::Isolate
Isolate represents an isolated instance of the V8 engine.
Definition:
v8.h:4356
v8::Platform
V8 Platform abstraction layer.
Definition:
v8-platform.h:28
v8::Platform::~Platform
virtual ~Platform()
Definition:
v8-platform.h:40
v8::Platform::CallOnForegroundThread
virtual void CallOnForegroundThread(Isolate *isolate, Task *task)=0
Schedules a task to be invoked on a foreground thread wrt a specific |isolate|.
v8::Platform::CallOnBackgroundThread
virtual void CallOnBackgroundThread(Task *task, ExpectedRuntime expected_runtime)=0
Schedules a task to be invoked on a background thread.
v8::Platform::ExpectedRuntime
ExpectedRuntime
This enum is used to indicate whether a task is potentially long running, or causes a long wait.
Definition:
v8-platform.h:35
v8::Platform::kLongRunningTask
@ kLongRunningTask
Definition:
v8-platform.h:37
v8::Platform::kShortRunningTask
@ kShortRunningTask
Definition:
v8-platform.h:36
v8::Task
A Task represents a unit of work.
Definition:
v8-platform.h:15
v8::Task::Run
virtual void Run()=0
v8::Task::~Task
virtual ~Task()
Definition:
v8-platform.h:17
v8
Debugger support for the V8 JavaScript engine.
Definition:
accessors.cc:20
mnt
V8SourceCode
include
v8-platform.h
Generated on Tue Jul 1 2025 02:36:25 for V8 Project by
1.9.1