Index: src/isolate.h |
diff --git a/src/isolate.h b/src/isolate.h |
index 01b721dc269048ae134148e21120532c1e7f8dcb..1639d62ccbf4db56b06dc800fd4a6a91f7273b05 100644 |
--- a/src/isolate.h |
+++ b/src/isolate.h |
@@ -220,6 +220,7 @@ class ThreadLocalTop BASE_EMBEDDED { |
ASSERT(try_catch_handler_address_ == NULL); |
} |
+ Isolate* isolate_; |
// The context where the current execution method is created and for variable |
// lookups. |
Context* context_; |
@@ -480,6 +481,10 @@ class Isolate { |
// Safe to call multiple times. |
static void EnsureDefaultIsolate(); |
+ // Find the PerThread for this particular (isolate, thread) combination |
+ // If one does not yet exist, return null. |
+ PerIsolateThreadData* FindPerThreadDataForThisThread(); |
+ |
// Get the debugger from the default isolate. Preinitializes the |
// default isolate if needed. |
static Debugger* GetDefaultIsolateDebugger(); |
@@ -1063,6 +1068,10 @@ class Isolate { |
// If one does not yet exist, allocate a new one. |
PerIsolateThreadData* FindOrAllocatePerThreadDataForThisThread(); |
+ // Preinitialize this isolate for current thread. Thread-safe. |
+ // Only called from v8::Locker implementation. |
+ void EnsurePreinitializedForThisThread(); |
+ |
// PreInits and returns a default isolate. Needed when a new thread tries |
// to create a Locker for the first time (the lock itself is in the isolate). |
static Isolate* GetDefaultIsolateForLocking(); |
@@ -1197,9 +1206,12 @@ class Isolate { |
friend class ExecutionAccess; |
friend class IsolateInitializer; |
+ friend class ThreadManager; |
+ friend class StackGuard; |
friend class ThreadId; |
friend class v8::Isolate; |
friend class v8::Locker; |
+ friend class v8::Unlocker; |
DISALLOW_COPY_AND_ASSIGN(Isolate); |
}; |