Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Unified Diff: src/isolate.h

Issue 6788023: Per-isolate v8::Locker and v8::Unlocker (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: New tests for IsLocker Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698