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

#include <safepoint.h>

Collaboration diagram for v8::internal::IsolateSafepoint:

Classes

class  Barrier
 
struct  RunningLocalHeap
 

Public Member Functions

 IsolateSafepoint (Heap *heap)
 
void Iterate (RootVisitor *visitor)
 
template<typename Callback >
void IterateLocalHeaps (Callback callback)
 
void AssertActive ()
 
V8_EXPORT_PRIVATE void AssertMainThreadIsOnlyThread ()
 

Private Types

enum class  IncludeMainThread { kYes , kNo }
 
using RunningLocalHeaps = base::SmallVector<RunningLocalHeap, 4>
 

Private Member Functions

void WaitInUnpark ()
 
void WaitInSafepoint ()
 
void NotifyPark ()
 
void EnterLocalSafepointScope ()
 
void LeaveLocalSafepointScope ()
 
void TryInitiateGlobalSafepointScope (Isolate *initiator, PerClientSafepointData *client_data)
 
void InitiateGlobalSafepointScope (Isolate *initiator, PerClientSafepointData *client_data)
 
void InitiateGlobalSafepointScopeRaw (Isolate *initiator, PerClientSafepointData *client_data)
 
void LeaveGlobalSafepointScope (Isolate *initiator)
 
void WaitUntilRunningThreadsInSafepoint (const PerClientSafepointData *client_data)
 
IncludeMainThread ShouldIncludeMainThread (Isolate *initiator)
 
void LockMutex (LocalHeap *local_heap)
 
void SetSafepointRequestedFlags (IncludeMainThread include_main_thread, IsolateSafepoint::RunningLocalHeaps &running_local_heaps)
 
void ClearSafepointRequestedFlags (IncludeMainThread include_main_thread)
 
template<typename Callback >
void AddLocalHeap (LocalHeap *local_heap, Callback callback)
 
template<typename Callback >
void RemoveLocalHeap (LocalHeap *local_heap, Callback callback)
 
Isolateisolate () const
 
Isolateshared_space_isolate () const
 

Private Attributes

Barrier barrier_
 
Heapheap_
 
base::RecursiveMutex local_heaps_mutex_
 
LocalHeaplocal_heaps_head_ = nullptr
 
int active_safepoint_scopes_ = 0
 

Friends

class GlobalSafepoint
 
class GlobalSafepointScope
 
class Isolate
 
class IsolateSafepointScope
 
class LocalHeap
 
class PerClientSafepointData
 

Detailed Description

Definition at line 28 of file safepoint.h.

Member Typedef Documentation

◆ RunningLocalHeaps

Member Enumeration Documentation

◆ IncludeMainThread

Enumerator
kYes 
kNo 

Definition at line 82 of file safepoint.h.

Constructor & Destructor Documentation

◆ IsolateSafepoint()

v8::internal::IsolateSafepoint::IsolateSafepoint ( Heap * heap)
explicit

Definition at line 29 of file safepoint.cc.

Member Function Documentation

◆ AddLocalHeap()

template<typename Callback >
void v8::internal::IsolateSafepoint::AddLocalHeap ( LocalHeap * local_heap,
Callback callback )
inlineprivate

Definition at line 120 of file safepoint.h.

Here is the caller graph for this function:

◆ AssertActive()

void v8::internal::IsolateSafepoint::AssertActive ( )
inline

Definition at line 45 of file safepoint.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AssertMainThreadIsOnlyThread()

void v8::internal::IsolateSafepoint::AssertMainThreadIsOnlyThread ( )

Definition at line 304 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ClearSafepointRequestedFlags()

void v8::internal::IsolateSafepoint::ClearSafepointRequestedFlags ( IncludeMainThread include_main_thread)
private

Definition at line 201 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EnterLocalSafepointScope()

void v8::internal::IsolateSafepoint::EnterLocalSafepointScope ( )
private

Definition at line 31 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InitiateGlobalSafepointScope()

void v8::internal::IsolateSafepoint::InitiateGlobalSafepointScope ( Isolate * initiator,
PerClientSafepointData * client_data )
private

Definition at line 74 of file safepoint.cc.

Here is the call graph for this function:

◆ InitiateGlobalSafepointScopeRaw()

void v8::internal::IsolateSafepoint::InitiateGlobalSafepointScopeRaw ( Isolate * initiator,
PerClientSafepointData * client_data )
private

Definition at line 105 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isolate()

Isolate * v8::internal::IsolateSafepoint::isolate ( ) const
private

Definition at line 309 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Iterate()

void v8::internal::IsolateSafepoint::Iterate ( RootVisitor * visitor)

Definition at line 296 of file safepoint.cc.

Here is the call graph for this function:

◆ IterateLocalHeaps()

template<typename Callback >
void v8::internal::IsolateSafepoint::IterateLocalHeaps ( Callback callback)
inline

Definition at line 37 of file safepoint.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LeaveGlobalSafepointScope()

void v8::internal::IsolateSafepoint::LeaveGlobalSafepointScope ( Isolate * initiator)
private

Definition at line 181 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LeaveLocalSafepointScope()

void v8::internal::IsolateSafepoint::LeaveLocalSafepointScope ( )
private

Definition at line 189 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LockMutex()

void v8::internal::IsolateSafepoint::LockMutex ( LocalHeap * local_heap)
private

Definition at line 172 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NotifyPark()

void v8::internal::IsolateSafepoint::NotifyPark ( )
private

Definition at line 224 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RemoveLocalHeap()

template<typename Callback >
void v8::internal::IsolateSafepoint::RemoveLocalHeap ( LocalHeap * local_heap,
Callback callback )
inlineprivate

Definition at line 136 of file safepoint.h.

Here is the caller graph for this function:

◆ SetSafepointRequestedFlags()

void v8::internal::IsolateSafepoint::SetSafepointRequestedFlags ( IncludeMainThread include_main_thread,
IsolateSafepoint::RunningLocalHeaps & running_local_heaps )
private

Definition at line 131 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ shared_space_isolate()

Isolate * v8::internal::IsolateSafepoint::shared_space_isolate ( ) const
private

Definition at line 311 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ShouldIncludeMainThread()

IsolateSafepoint::IncludeMainThread v8::internal::IsolateSafepoint::ShouldIncludeMainThread ( Isolate * initiator)
private

Definition at line 125 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TryInitiateGlobalSafepointScope()

void v8::internal::IsolateSafepoint::TryInitiateGlobalSafepointScope ( Isolate * initiator,
PerClientSafepointData * client_data )
private

Definition at line 81 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WaitInSafepoint()

void v8::internal::IsolateSafepoint::WaitInSafepoint ( )
private

Definition at line 220 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WaitInUnpark()

void v8::internal::IsolateSafepoint::WaitInUnpark ( )
private

Definition at line 222 of file safepoint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WaitUntilRunningThreadsInSafepoint()

void v8::internal::IsolateSafepoint::WaitUntilRunningThreadsInSafepoint ( const PerClientSafepointData * client_data)
private

Definition at line 226 of file safepoint.cc.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ GlobalSafepoint

friend class GlobalSafepoint
friend

Definition at line 163 of file safepoint.h.

◆ GlobalSafepointScope

friend class GlobalSafepointScope
friend

Definition at line 164 of file safepoint.h.

◆ Isolate

friend class Isolate
friend

Definition at line 165 of file safepoint.h.

◆ IsolateSafepointScope

friend class IsolateSafepointScope
friend

Definition at line 166 of file safepoint.h.

◆ LocalHeap

friend class LocalHeap
friend

Definition at line 167 of file safepoint.h.

◆ PerClientSafepointData

friend class PerClientSafepointData
friend

Definition at line 168 of file safepoint.h.

Member Data Documentation

◆ active_safepoint_scopes_

int v8::internal::IsolateSafepoint::active_safepoint_scopes_ = 0
private

Definition at line 161 of file safepoint.h.

◆ barrier_

Barrier v8::internal::IsolateSafepoint::barrier_
private

Definition at line 153 of file safepoint.h.

◆ heap_

Heap* v8::internal::IsolateSafepoint::heap_
private

Definition at line 154 of file safepoint.h.

◆ local_heaps_head_

LocalHeap* v8::internal::IsolateSafepoint::local_heaps_head_ = nullptr
private

Definition at line 159 of file safepoint.h.

◆ local_heaps_mutex_

base::RecursiveMutex v8::internal::IsolateSafepoint::local_heaps_mutex_
private

Definition at line 158 of file safepoint.h.


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