v8
10.1.124 (node 18.2.0)
V8 is Google's open source JavaScript engine
heap-state.h
Go to the documentation of this file.
1
// Copyright 2021 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
INCLUDE_CPPGC_HEAP_STATE_H_
6
#
define
INCLUDE_CPPGC_HEAP_STATE_H_
7
8
#
include
"v8config.h"
// NOLINT(build/include_directory)
9
10
namespace
cppgc
{
11
12
class
HeapHandle;
13
14
namespace
subtle
{
15
16
/**
17
* Helpers to peek into heap-internal state.
18
*/
19
class
V8_EXPORT
HeapState
final
{
20
public
:
21
/**
22
* Returns whether the garbage collector is marking. This API is experimental
23
* and is expected to be removed in future.
24
*
25
* \param heap_handle The corresponding heap.
26
* \returns true if the garbage collector is currently marking, and false
27
* otherwise.
28
*/
29
static
bool
IsMarking
(
const
HeapHandle& heap_handle);
30
31
/*
32
* Returns whether the garbage collector is sweeping. This API is experimental
33
* and is expected to be removed in future.
34
*
35
* \param heap_handle The corresponding heap.
36
* \returns true if the garbage collector is currently sweeping, and false
37
* otherwise.
38
*/
39
static
bool
IsSweeping
(
const
HeapHandle& heap_handle);
40
41
/*
42
* Returns whether the garbage collector is currently sweeping on the thread
43
* owning this heap. This API allows the caller to determine whether it has
44
* been called from a destructor of a managed object. This API is experimental
45
* and may be removed in future.
46
*
47
* \param heap_handle The corresponding heap.
48
* \returns true if the garbage collector is currently sweeping on this
49
* thread, and false otherwise.
50
*/
51
static
bool
IsSweepingOnOwningThread
(
const
HeapHandle& heap_handle);
52
53
/**
54
* Returns whether the garbage collector is in the atomic pause, i.e., the
55
* mutator is stopped from running. This API is experimental and is expected
56
* to be removed in future.
57
*
58
* \param heap_handle The corresponding heap.
59
* \returns true if the garbage collector is currently in the atomic pause,
60
* and false otherwise.
61
*/
62
static
bool
IsInAtomicPause
(
const
HeapHandle& heap_handle);
63
64
/**
65
* Returns whether the last garbage collection was finalized conservatively
66
* (i.e., with a non-empty stack). This API is experimental and is expected to
67
* be removed in future.
68
*
69
* \param heap_handle The corresponding heap.
70
* \returns true if the last garbage collection was finalized conservatively,
71
* and false otherwise.
72
*/
73
static
bool
PreviousGCWasConservative
(
const
HeapHandle& heap_handle);
74
75
private
:
76
HeapState() =
delete
;
77
};
78
79
}
// namespace subtle
80
}
// namespace cppgc
81
82
#
endif
// INCLUDE_CPPGC_HEAP_STATE_H_
include
cppgc
heap-state.h
Generated on Tue May 24 2022 19:28:52 for v8 by
1.9.1