v8
3.28.71 (node 0.12.18)
V8 is Google's open source JavaScript engine
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_
include
v8-platform.h
Generated on Fri Oct 29 2021 20:04:30 for v8 by
1.9.1