Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Friends | List of all members
v8::IsolateGroup Class Reference

#include <v8-isolate.h>

Public Member Functions

 IsolateGroup (IsolateGroup &&other)
 
IsolateGroupoperator= (IsolateGroup &&other)
 
 IsolateGroup (const IsolateGroup &)=delete
 
IsolateGroupoperator= (const IsolateGroup &)=delete
 
 ~IsolateGroup ()
 
bool operator== (const IsolateGroup &other) const
 
bool operator!= (const IsolateGroup &other) const
 

Static Public Member Functions

static IsolateGroup GetDefault ()
 
static bool CanCreateNewGroups ()
 
static IsolateGroup Create ()
 

Friends

class Isolate
 

Detailed Description

The set of V8 isolates in a process is partitioned into groups. Each group has its own sandbox (if V8 was configured with support for the sandbox) and pointer-compression cage (if configured with pointer compression).

By default, all isolates are placed in the same group. This is the most efficient configuration in terms of speed and memory use. However, with pointer compression enabled, total heap usage of isolates in a group cannot exceed 4 GB, not counting array buffers and other off-heap storage. Using multiple isolate groups can allow embedders to allocate more than 4GB of objects with pointer compression enabled, if the embedder's use case can span multiple isolates.

Creating an isolate group reserves a range of virtual memory addresses. A group's memory mapping will be released when the last isolate in the group is disposed, and there are no more live IsolateGroup objects that refer to it.

Note that Isolate groups are reference counted, and the IsolateGroup type is a reference to one.

Note that it's not going to be possible to pass shared JS objects across IsolateGroup boundary.

Constructor & Destructor Documentation

◆ IsolateGroup() [1/2]

v8::IsolateGroup::IsolateGroup ( IsolateGroup &&  other)

◆ IsolateGroup() [2/2]

v8::IsolateGroup::IsolateGroup ( const IsolateGroup )
delete

◆ ~IsolateGroup()

v8::IsolateGroup::~IsolateGroup ( )

Member Function Documentation

◆ CanCreateNewGroups()

static bool v8::IsolateGroup::CanCreateNewGroups ( )
static

Return true if new isolate groups can be created at run-time, or false if all isolates must be in the same group.

◆ Create()

static IsolateGroup v8::IsolateGroup::Create ( )
static

Create a new isolate group. If this V8's build configuration only supports a single group, abort.

◆ GetDefault()

static IsolateGroup v8::IsolateGroup::GetDefault ( )
static

Get the default isolate group. If this V8's build configuration only supports a single group, this is a reference to that single group. Otherwise this is a group like any other, distinguished only in that it is the first group.

◆ operator!=()

bool v8::IsolateGroup::operator!= ( const IsolateGroup other) const
inline

◆ operator=() [1/2]

IsolateGroup & v8::IsolateGroup::operator= ( const IsolateGroup )
delete

◆ operator=() [2/2]

IsolateGroup & v8::IsolateGroup::operator= ( IsolateGroup &&  other)

◆ operator==()

bool v8::IsolateGroup::operator== ( const IsolateGroup other) const
inline

Friends And Related Function Documentation

◆ Isolate

friend class Isolate
friend

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