| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef V8_ISOLATE_H_ | 5 #ifndef V8_ISOLATE_H_ | 
| 6 #define V8_ISOLATE_H_ | 6 #define V8_ISOLATE_H_ | 
| 7 | 7 | 
| 8 #include "include/v8-debug.h" | 8 #include "include/v8-debug.h" | 
| 9 #include "src/allocation.h" | 9 #include "src/allocation.h" | 
| 10 #include "src/assert-scope.h" | 10 #include "src/assert-scope.h" | 
| 11 #include "src/atomicops.h" | 11 #include "src/base/atomicops.h" | 
| 12 #include "src/builtins.h" | 12 #include "src/builtins.h" | 
| 13 #include "src/contexts.h" | 13 #include "src/contexts.h" | 
| 14 #include "src/execution.h" | 14 #include "src/execution.h" | 
| 15 #include "src/frames.h" | 15 #include "src/frames.h" | 
| 16 #include "src/date.h" | 16 #include "src/date.h" | 
| 17 #include "src/global-handles.h" | 17 #include "src/global-handles.h" | 
| 18 #include "src/handles.h" | 18 #include "src/handles.h" | 
| 19 #include "src/hashmap.h" | 19 #include "src/hashmap.h" | 
| 20 #include "src/heap.h" | 20 #include "src/heap.h" | 
| 21 #include "src/optimizing-compiler-thread.h" | 21 #include "src/optimizing-compiler-thread.h" | 
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 184   static const int kInvalidId = -1; | 184   static const int kInvalidId = -1; | 
| 185 | 185 | 
| 186   explicit ThreadId(int id) : id_(id) {} | 186   explicit ThreadId(int id) : id_(id) {} | 
| 187 | 187 | 
| 188   static int AllocateThreadId(); | 188   static int AllocateThreadId(); | 
| 189 | 189 | 
| 190   static int GetCurrentThreadId(); | 190   static int GetCurrentThreadId(); | 
| 191 | 191 | 
| 192   int id_; | 192   int id_; | 
| 193 | 193 | 
| 194   static Atomic32 highest_thread_id_; | 194   static base::Atomic32 highest_thread_id_; | 
| 195 | 195 | 
| 196   friend class Isolate; | 196   friend class Isolate; | 
| 197 }; | 197 }; | 
| 198 | 198 | 
| 199 | 199 | 
| 200 #define FIELD_ACCESSOR(type, name)                 \ | 200 #define FIELD_ACCESSOR(type, name)                 \ | 
| 201   inline void set_##name(type v) { name##_ = v; }  \ | 201   inline void set_##name(type v) { name##_ = v; }  \ | 
| 202   inline type name() const { return name##_; } | 202   inline type name() const { return name##_; } | 
| 203 | 203 | 
| 204 | 204 | 
| (...skipping 936 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1141 | 1141 | 
| 1142   // This mutex protects highest_thread_id_ and thread_data_table_. | 1142   // This mutex protects highest_thread_id_ and thread_data_table_. | 
| 1143   static Mutex process_wide_mutex_; | 1143   static Mutex process_wide_mutex_; | 
| 1144 | 1144 | 
| 1145   static Thread::LocalStorageKey per_isolate_thread_data_key_; | 1145   static Thread::LocalStorageKey per_isolate_thread_data_key_; | 
| 1146   static Thread::LocalStorageKey isolate_key_; | 1146   static Thread::LocalStorageKey isolate_key_; | 
| 1147   static Thread::LocalStorageKey thread_id_key_; | 1147   static Thread::LocalStorageKey thread_id_key_; | 
| 1148   static ThreadDataTable* thread_data_table_; | 1148   static ThreadDataTable* thread_data_table_; | 
| 1149 | 1149 | 
| 1150   // A global counter for all generated Isolates, might overflow. | 1150   // A global counter for all generated Isolates, might overflow. | 
| 1151   static Atomic32 isolate_counter_; | 1151   static base::Atomic32 isolate_counter_; | 
| 1152 | 1152 | 
| 1153   void Deinit(); | 1153   void Deinit(); | 
| 1154 | 1154 | 
| 1155   static void SetIsolateThreadLocals(Isolate* isolate, | 1155   static void SetIsolateThreadLocals(Isolate* isolate, | 
| 1156                                      PerIsolateThreadData* data); | 1156                                      PerIsolateThreadData* data); | 
| 1157 | 1157 | 
| 1158   // Find the PerThread for this particular (isolate, thread) combination. | 1158   // Find the PerThread for this particular (isolate, thread) combination. | 
| 1159   // If one does not yet exist, allocate a new one. | 1159   // If one does not yet exist, allocate a new one. | 
| 1160   PerIsolateThreadData* FindOrAllocatePerThreadDataForThisThread(); | 1160   PerIsolateThreadData* FindOrAllocatePerThreadDataForThisThread(); | 
| 1161 | 1161 | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 1178                            ThreadLocalTop* archived_thread_data); | 1178                            ThreadLocalTop* archived_thread_data); | 
| 1179 | 1179 | 
| 1180   void FillCache(); | 1180   void FillCache(); | 
| 1181 | 1181 | 
| 1182   void PropagatePendingExceptionToExternalTryCatch(); | 1182   void PropagatePendingExceptionToExternalTryCatch(); | 
| 1183 | 1183 | 
| 1184   // Traverse prototype chain to find out whether the object is derived from | 1184   // Traverse prototype chain to find out whether the object is derived from | 
| 1185   // the Error object. | 1185   // the Error object. | 
| 1186   bool IsErrorObject(Handle<Object> obj); | 1186   bool IsErrorObject(Handle<Object> obj); | 
| 1187 | 1187 | 
| 1188   Atomic32 id_; | 1188   base::Atomic32 id_; | 
| 1189   EntryStackItem* entry_stack_; | 1189   EntryStackItem* entry_stack_; | 
| 1190   int stack_trace_nesting_level_; | 1190   int stack_trace_nesting_level_; | 
| 1191   StringStream* incomplete_message_; | 1191   StringStream* incomplete_message_; | 
| 1192   Address isolate_addresses_[kIsolateAddressCount + 1];  // NOLINT | 1192   Address isolate_addresses_[kIsolateAddressCount + 1];  // NOLINT | 
| 1193   Bootstrapper* bootstrapper_; | 1193   Bootstrapper* bootstrapper_; | 
| 1194   RuntimeProfiler* runtime_profiler_; | 1194   RuntimeProfiler* runtime_profiler_; | 
| 1195   CompilationCache* compilation_cache_; | 1195   CompilationCache* compilation_cache_; | 
| 1196   Counters* counters_; | 1196   Counters* counters_; | 
| 1197   CodeRange* code_range_; | 1197   CodeRange* code_range_; | 
| 1198   RecursiveMutex break_access_; | 1198   RecursiveMutex break_access_; | 
| 1199   Atomic32 debugger_initialized_; | 1199   base::Atomic32 debugger_initialized_; | 
| 1200   Logger* logger_; | 1200   Logger* logger_; | 
| 1201   StackGuard stack_guard_; | 1201   StackGuard stack_guard_; | 
| 1202   StatsTable* stats_table_; | 1202   StatsTable* stats_table_; | 
| 1203   StubCache* stub_cache_; | 1203   StubCache* stub_cache_; | 
| 1204   CodeAgingHelper* code_aging_helper_; | 1204   CodeAgingHelper* code_aging_helper_; | 
| 1205   DeoptimizerData* deoptimizer_data_; | 1205   DeoptimizerData* deoptimizer_data_; | 
| 1206   MaterializedObjectStore* materialized_object_store_; | 1206   MaterializedObjectStore* materialized_object_store_; | 
| 1207   ThreadLocalTop thread_local_top_; | 1207   ThreadLocalTop thread_local_top_; | 
| 1208   bool capture_stack_trace_for_uncaught_exceptions_; | 1208   bool capture_stack_trace_for_uncaught_exceptions_; | 
| 1209   int stack_trace_for_uncaught_exceptions_frame_limit_; | 1209   int stack_trace_for_uncaught_exceptions_frame_limit_; | 
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1489   } | 1489   } | 
| 1490 | 1490 | 
| 1491   EmbeddedVector<char, 128> filename_; | 1491   EmbeddedVector<char, 128> filename_; | 
| 1492   FILE* file_; | 1492   FILE* file_; | 
| 1493   int scope_depth_; | 1493   int scope_depth_; | 
| 1494 }; | 1494 }; | 
| 1495 | 1495 | 
| 1496 } }  // namespace v8::internal | 1496 } }  // namespace v8::internal | 
| 1497 | 1497 | 
| 1498 #endif  // V8_ISOLATE_H_ | 1498 #endif  // V8_ISOLATE_H_ | 
| OLD | NEW | 
|---|