v8  3.14.5(node0.10.48)
V8 is Google's open source JavaScript engine
Isolate Class Reference

#include <v8.h>

Data Structures

class  Scope

Public Member Functions

void Enter ()
void Exit ()
void Dispose ()
void SetData (void *data)
void * GetData ()

Static Public Member Functions

static IsolateNew ()
static IsolateGetCurrent ()

Detailed Description

Isolate represents an isolated instance of the V8 engine. V8 isolates have completely separate states. Objects from one isolate must not be used in other isolates. When V8 is initialized a default isolate is implicitly created and entered. The embedder can create additional isolates and use them in parallel in multiple threads. An isolate can be entered by at most one thread at any given time. The Locker/Unlocker API must be used to synchronize.

Definition at line 2807 of file v8.h.

Member Function Documentation

void Dispose ( )

Disposes the isolate. The isolate must not be entered by any thread to be disposable.

void Enter ( )

Methods below this point require holding a lock (using Locker) in a multi-threaded environment. Sets this isolate as the entered one for the current thread. Saves the previously entered one (if any), so that it can be restored when exiting. Re-entering an isolate is allowed.

Referenced by Isolate::Scope::Scope().

void Exit ( )

Exits this isolate by restoring the previously entered one in the current thread. The isolate may still stay the same, if it was entered more than once.

Requires: this == Isolate::GetCurrent().

Referenced by Isolate::Scope::~Scope().

static Isolate* GetCurrent ( )

Returns the entered isolate for the current thread or NULL in case there is no current isolate.

void * GetData ( )

Retrieve embedder-specific data from the isolate. Returns NULL if SetData has never been called.

Definition at line 4675 of file v8.h.

References Internals::GetEmbedderData().

static Isolate* New ( )

Creates a new isolate. Does not change the currently entered isolate.

When an isolate is no longer used its resources should be freed by calling Dispose(). Using the delete operator is not allowed.

void SetData ( void *  data)

Associate embedder-specific data with the isolate

Definition at line 4669 of file v8.h.

References Internals::SetEmbedderData().

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