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

#include <isolate-group.h>

Collaboration diagram for v8::internal::IsolateGroup:

Public Member Functions

IsolateGroupAcquire ()
 
void Release ()
 
v8::PageAllocatorpage_allocator () const
 
CodeRangeEnsureCodeRange (size_t requested_size)
 
CodeRangeGetCodeRange () const
 
MemorySpan< Addressexternal_ref_table ()
 
bool has_shared_space_isolate () const
 
Isolateshared_space_isolate () const
 
void init_shared_space_isolate (Isolate *isolate)
 
OptimizingCompileTaskExecutoroptimizing_compile_task_executor ()
 
ReadOnlyHeapshared_read_only_heap () const
 
void set_shared_read_only_heap (ReadOnlyHeap *heap)
 
base::Mutexmutex ()
 
ReadOnlyArtifactsread_only_artifacts ()
 
ReadOnlyArtifactsInitializeReadOnlyArtifacts ()
 
PageAllocatorGetBackingStorePageAllocator ()
 
void SetupReadOnlyHeap (Isolate *isolate, SnapshotData *read_only_snapshot_data, bool can_rehash)
 
void AddIsolate (Isolate *isolate)
 
void RemoveIsolate (Isolate *isolate)
 
PagePoolpage_pool () const
 
template<typename Callback >
bool FindAnotherIsolateLocked (Isolate *isolate, Callback callback)
 

Static Public Member Functions

static IsolateGroupAcquireDefault ()
 
static constexpr bool CanCreateNewGroups ()
 
static IsolateGroupNew ()
 
static void InitializeOncePerProcess ()
 
static void TearDownOncePerProcess ()
 
static IsolateGroupcurrent ()
 
static V8_INLINE IsolateGroupGetDefault ()
 

Private Member Functions

 IsolateGroup ()=default
 
 ~IsolateGroup ()
 
 IsolateGroup (const IsolateGroup &)=delete
 
IsolateGroupoperator= (const IsolateGroup &)=delete
 
void Initialize (bool process_wide)
 

Static Private Member Functions

static void ReleaseDefault ()
 

Private Attributes

std::atomic< int > reference_count_ {1}
 
int isolate_count_ {0}
 
v8::PageAllocatorpage_allocator_ = nullptr
 
std::unique_ptr< PagePoolpage_pool_
 
base::OnceType init_code_range_ = V8_ONCE_INIT
 
std::unique_ptr< CodeRangecode_range_
 
Address external_ref_table_ [ExternalReferenceTable::kSizeIsolateIndependent]
 
bool process_wide_
 
base::Mutex mutex_
 
std::unique_ptr< ReadOnlyArtifactsread_only_artifacts_
 
ReadOnlyHeapshared_read_only_heap_ = nullptr
 
Isolateshared_space_isolate_ = nullptr
 
std::unique_ptr< OptimizingCompileTaskExecutoroptimizing_compile_task_executor_
 
absl::flat_hash_set< Isolate * > isolates_
 
Isolatemain_isolate_ = nullptr
 

Static Private Attributes

static IsolateGroupdefault_isolate_group_ = nullptr
 

Friends

class base::LeakyObject< IsolateGroup >
 
class PoolTest
 
class PagePool
 

Detailed Description

Definition at line 118 of file isolate-group.h.

Constructor & Destructor Documentation

◆ IsolateGroup() [1/2]

v8::internal::IsolateGroup::IsolateGroup ( )
privatedefault
Here is the caller graph for this function:

◆ ~IsolateGroup()

v8::internal::IsolateGroup::~IsolateGroup ( )
private

Definition at line 93 of file isolate-group.cc.

◆ IsolateGroup() [2/2]

v8::internal::IsolateGroup::IsolateGroup ( const IsolateGroup & )
privatedelete

Member Function Documentation

◆ Acquire()

IsolateGroup * v8::internal::IsolateGroup::Acquire ( )
inline

Definition at line 142 of file isolate-group.h.

Here is the caller graph for this function:

◆ AcquireDefault()

static IsolateGroup * v8::internal::IsolateGroup::AcquireDefault ( )
inlinestatic

Definition at line 122 of file isolate-group.h.

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

◆ AddIsolate()

void v8::internal::IsolateGroup::AddIsolate ( Isolate * isolate)

Definition at line 278 of file isolate-group.cc.

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

◆ CanCreateNewGroups()

static constexpr bool v8::internal::IsolateGroup::CanCreateNewGroups ( )
inlinestaticconstexpr

Definition at line 126 of file isolate-group.h.

Here is the caller graph for this function:

◆ current()

static IsolateGroup * v8::internal::IsolateGroup::current ( )
inlinestatic

Definition at line 181 of file isolate-group.h.

Here is the caller graph for this function:

◆ EnsureCodeRange()

CodeRange * v8::internal::IsolateGroup::EnsureCodeRange ( size_t requested_size)

Definition at line 249 of file isolate-group.cc.

Here is the call graph for this function:

◆ external_ref_table()

MemorySpan< Address > v8::internal::IsolateGroup::external_ref_table ( )
inline

Definition at line 184 of file isolate-group.h.

Here is the caller graph for this function:

◆ FindAnotherIsolateLocked()

template<typename Callback >
bool v8::internal::IsolateGroup::FindAnotherIsolateLocked ( Isolate * isolate,
Callback callback )
inline

Definition at line 248 of file isolate-group.h.

◆ GetBackingStorePageAllocator()

PageAllocator * v8::internal::IsolateGroup::GetBackingStorePageAllocator ( )

Definition at line 262 of file isolate-group.cc.

Here is the call graph for this function:

◆ GetCodeRange()

CodeRange * v8::internal::IsolateGroup::GetCodeRange ( ) const
inline

Definition at line 168 of file isolate-group.h.

Here is the caller graph for this function:

◆ GetDefault()

static V8_INLINE IsolateGroup * v8::internal::IsolateGroup::GetDefault ( )
inlinestatic

Definition at line 274 of file isolate-group.h.

Here is the caller graph for this function:

◆ has_shared_space_isolate()

bool v8::internal::IsolateGroup::has_shared_space_isolate ( ) const
inline

Definition at line 186 of file isolate-group.h.

Here is the caller graph for this function:

◆ init_shared_space_isolate()

void v8::internal::IsolateGroup::init_shared_space_isolate ( Isolate * isolate)
inline

Definition at line 194 of file isolate-group.h.

Here is the caller graph for this function:

◆ Initialize()

void v8::internal::IsolateGroup::Initialize ( bool process_wide)
private

Definition at line 178 of file isolate-group.cc.

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

◆ InitializeOncePerProcess()

void v8::internal::IsolateGroup::InitializeOncePerProcess ( )
static

Definition at line 191 of file isolate-group.cc.

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

◆ InitializeReadOnlyArtifacts()

ReadOnlyArtifacts * v8::internal::IsolateGroup::InitializeReadOnlyArtifacts ( )

Definition at line 255 of file isolate-group.cc.

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

◆ mutex()

base::Mutex * v8::internal::IsolateGroup::mutex ( )
inline

Definition at line 206 of file isolate-group.h.

Here is the caller graph for this function:

◆ New()

IsolateGroup * v8::internal::IsolateGroup::New ( )
static

Definition at line 334 of file isolate-group.cc.

Here is the call graph for this function:

◆ operator=()

IsolateGroup & v8::internal::IsolateGroup::operator= ( const IsolateGroup & )
privatedelete

◆ optimizing_compile_task_executor()

OptimizingCompileTaskExecutor * v8::internal::IsolateGroup::optimizing_compile_task_executor ( )

Definition at line 491 of file isolate-group.cc.

Here is the caller graph for this function:

◆ page_allocator()

v8::PageAllocator * v8::internal::IsolateGroup::page_allocator ( ) const
inline

Definition at line 152 of file isolate-group.h.

Here is the caller graph for this function:

◆ page_pool()

PagePool * v8::internal::IsolateGroup::page_pool ( ) const
inline

Definition at line 242 of file isolate-group.h.

Here is the caller graph for this function:

◆ read_only_artifacts()

ReadOnlyArtifacts * v8::internal::IsolateGroup::read_only_artifacts ( )
inline

Definition at line 208 of file isolate-group.h.

Here is the caller graph for this function:

◆ Release()

void v8::internal::IsolateGroup::Release ( )

Definition at line 221 of file isolate-group.cc.

Here is the caller graph for this function:

◆ ReleaseDefault()

void v8::internal::IsolateGroup::ReleaseDefault ( )
staticprivate

Definition at line 362 of file isolate-group.cc.

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

◆ RemoveIsolate()

void v8::internal::IsolateGroup::RemoveIsolate ( Isolate * isolate)

Definition at line 303 of file isolate-group.cc.

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

◆ set_shared_read_only_heap()

void v8::internal::IsolateGroup::set_shared_read_only_heap ( ReadOnlyHeap * heap)
inline

Definition at line 202 of file isolate-group.h.

◆ SetupReadOnlyHeap()

void v8::internal::IsolateGroup::SetupReadOnlyHeap ( Isolate * isolate,
SnapshotData * read_only_snapshot_data,
bool can_rehash )

Definition at line 270 of file isolate-group.cc.

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

◆ shared_read_only_heap()

ReadOnlyHeap * v8::internal::IsolateGroup::shared_read_only_heap ( ) const
inline

Definition at line 201 of file isolate-group.h.

Here is the caller graph for this function:

◆ shared_space_isolate()

Isolate * v8::internal::IsolateGroup::shared_space_isolate ( ) const
inline

Definition at line 190 of file isolate-group.h.

Here is the caller graph for this function:

◆ TearDownOncePerProcess()

void v8::internal::IsolateGroup::TearDownOncePerProcess ( )
static

Definition at line 219 of file isolate-group.cc.

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

Friends And Related Symbol Documentation

◆ base::LeakyObject< IsolateGroup >

friend class base::LeakyObject< IsolateGroup >
friend

Definition at line 274 of file isolate-group.h.

◆ PagePool

friend class PagePool
friend

Definition at line 279 of file isolate-group.h.

◆ PoolTest

friend class PoolTest
friend

Definition at line 278 of file isolate-group.h.

Member Data Documentation

◆ code_range_

std::unique_ptr<CodeRange> v8::internal::IsolateGroup::code_range_
private

Definition at line 322 of file isolate-group.h.

◆ default_isolate_group_

IsolateGroup * v8::internal::IsolateGroup::default_isolate_group_ = nullptr
staticprivate

Definition at line 284 of file isolate-group.h.

◆ external_ref_table_

Address v8::internal::IsolateGroup::external_ref_table_[ExternalReferenceTable::kSizeIsolateIndependent]
private
Initial value:
=
{0}

Definition at line 323 of file isolate-group.h.

◆ init_code_range_

base::OnceType v8::internal::IsolateGroup::init_code_range_ = V8_ONCE_INIT
private

Definition at line 321 of file isolate-group.h.

◆ isolate_count_

int v8::internal::IsolateGroup::isolate_count_ {0}
private

Definition at line 306 of file isolate-group.h.

◆ isolates_

absl::flat_hash_set<Isolate*> v8::internal::IsolateGroup::isolates_
private

Definition at line 338 of file isolate-group.h.

◆ main_isolate_

Isolate* v8::internal::IsolateGroup::main_isolate_ = nullptr
private

Definition at line 343 of file isolate-group.h.

◆ mutex_

base::Mutex v8::internal::IsolateGroup::mutex_
private

Definition at line 330 of file isolate-group.h.

◆ optimizing_compile_task_executor_

std::unique_ptr<OptimizingCompileTaskExecutor> v8::internal::IsolateGroup::optimizing_compile_task_executor_
private

Definition at line 335 of file isolate-group.h.

◆ page_allocator_

v8::PageAllocator* v8::internal::IsolateGroup::page_allocator_ = nullptr
private

Definition at line 307 of file isolate-group.h.

◆ page_pool_

std::unique_ptr<PagePool> v8::internal::IsolateGroup::page_pool_
private

Definition at line 319 of file isolate-group.h.

◆ process_wide_

bool v8::internal::IsolateGroup::process_wide_
private

Definition at line 326 of file isolate-group.h.

◆ read_only_artifacts_

std::unique_ptr<ReadOnlyArtifacts> v8::internal::IsolateGroup::read_only_artifacts_
private

Definition at line 331 of file isolate-group.h.

◆ reference_count_

std::atomic<int> v8::internal::IsolateGroup::reference_count_ {1}
private

Definition at line 305 of file isolate-group.h.

◆ shared_read_only_heap_

ReadOnlyHeap* v8::internal::IsolateGroup::shared_read_only_heap_ = nullptr
private

Definition at line 332 of file isolate-group.h.

◆ shared_space_isolate_

Isolate* v8::internal::IsolateGroup::shared_space_isolate_ = nullptr
private

Definition at line 333 of file isolate-group.h.


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