Index: src/v8threads.cc |
=================================================================== |
--- src/v8threads.cc (revision 2982) |
+++ src/v8threads.cc (working copy) |
@@ -60,6 +60,10 @@ |
// get the saved state for this thread and restore it. |
if (internal::ThreadManager::RestoreThread()) { |
top_level_ = false; |
+ } else { |
+ internal::ExecutionAccess access; |
+ internal::StackGuard::ClearThread(access); |
+ internal::StackGuard::InitThread(access); |
} |
} |
ASSERT(internal::ThreadManager::IsLockedByCurrentThread()); |
@@ -141,6 +145,8 @@ |
ThreadState* state = |
reinterpret_cast<ThreadState*>(Thread::GetThreadLocal(thread_state_key)); |
if (state == NULL) { |
+ // This is a new thread. |
+ StackGuard::InitThread(access); |
return false; |
} |
char* from = state->data(); |