OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 class InlineRuntimeFunctionsTable; | 71 class InlineRuntimeFunctionsTable; |
72 class NoAllocationStringAllocator; | 72 class NoAllocationStringAllocator; |
73 class InnerPointerToCodeCache; | 73 class InnerPointerToCodeCache; |
74 class PreallocatedMemoryThread; | 74 class PreallocatedMemoryThread; |
75 class RegExpStack; | 75 class RegExpStack; |
76 class SaveContext; | 76 class SaveContext; |
77 class UnicodeCache; | 77 class UnicodeCache; |
78 class ConsStringIteratorOp; | 78 class ConsStringIteratorOp; |
79 class StringTracker; | 79 class StringTracker; |
80 class StubCache; | 80 class StubCache; |
| 81 class SweeperThread; |
81 class ThreadManager; | 82 class ThreadManager; |
82 class ThreadState; | 83 class ThreadState; |
83 class ThreadVisitor; // Defined in v8threads.h | 84 class ThreadVisitor; // Defined in v8threads.h |
84 class VMState; | 85 class VMState; |
85 | 86 |
86 // 'void function pointer', used to roundtrip the | 87 // 'void function pointer', used to roundtrip the |
87 // ExternalReference::ExternalReferenceRedirector since we can not include | 88 // ExternalReference::ExternalReferenceRedirector since we can not include |
88 // assembler.h, where it is defined, here. | 89 // assembler.h, where it is defined, here. |
89 typedef void* ExternalReferenceRedirectorPointer(); | 90 typedef void* ExternalReferenceRedirectorPointer(); |
90 | 91 |
(...skipping 980 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1071 | 1072 |
1072 OptimizingCompilerThread* optimizing_compiler_thread() { | 1073 OptimizingCompilerThread* optimizing_compiler_thread() { |
1073 return &optimizing_compiler_thread_; | 1074 return &optimizing_compiler_thread_; |
1074 } | 1075 } |
1075 | 1076 |
1076 // PreInits and returns a default isolate. Needed when a new thread tries | 1077 // PreInits and returns a default isolate. Needed when a new thread tries |
1077 // to create a Locker for the first time (the lock itself is in the isolate). | 1078 // to create a Locker for the first time (the lock itself is in the isolate). |
1078 // TODO(svenpanne) This method is on death row... | 1079 // TODO(svenpanne) This method is on death row... |
1079 static v8::Isolate* GetDefaultIsolateForLocking(); | 1080 static v8::Isolate* GetDefaultIsolateForLocking(); |
1080 | 1081 |
| 1082 SweeperThread** sweeper_threads() { |
| 1083 return sweeper_thread_; |
| 1084 } |
| 1085 |
1081 private: | 1086 private: |
1082 Isolate(); | 1087 Isolate(); |
1083 | 1088 |
1084 friend struct GlobalState; | 1089 friend struct GlobalState; |
1085 friend struct InitializeGlobalState; | 1090 friend struct InitializeGlobalState; |
1086 | 1091 |
1087 enum State { | 1092 enum State { |
1088 UNINITIALIZED, // Some components may not have been allocated. | 1093 UNINITIALIZED, // Some components may not have been allocated. |
1089 INITIALIZED // All components are fully initialized. | 1094 INITIALIZED // All components are fully initialized. |
1090 }; | 1095 }; |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1294 // between compilation units. | 1299 // between compilation units. |
1295 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ | 1300 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ |
1296 static const intptr_t name##_debug_offset_; | 1301 static const intptr_t name##_debug_offset_; |
1297 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) | 1302 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) |
1298 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) | 1303 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) |
1299 #undef ISOLATE_FIELD_OFFSET | 1304 #undef ISOLATE_FIELD_OFFSET |
1300 #endif | 1305 #endif |
1301 | 1306 |
1302 DeferredHandles* deferred_handles_head_; | 1307 DeferredHandles* deferred_handles_head_; |
1303 OptimizingCompilerThread optimizing_compiler_thread_; | 1308 OptimizingCompilerThread optimizing_compiler_thread_; |
| 1309 SweeperThread** sweeper_thread_; |
1304 | 1310 |
1305 friend class ExecutionAccess; | 1311 friend class ExecutionAccess; |
1306 friend class HandleScopeImplementer; | 1312 friend class HandleScopeImplementer; |
1307 friend class IsolateInitializer; | 1313 friend class IsolateInitializer; |
1308 friend class OptimizingCompilerThread; | 1314 friend class OptimizingCompilerThread; |
| 1315 friend class SweeperThread; |
1309 friend class ThreadManager; | 1316 friend class ThreadManager; |
1310 friend class Simulator; | 1317 friend class Simulator; |
1311 friend class StackGuard; | 1318 friend class StackGuard; |
1312 friend class ThreadId; | 1319 friend class ThreadId; |
1313 friend class TestMemoryAllocatorScope; | 1320 friend class TestMemoryAllocatorScope; |
1314 friend class TestCodeRangeScope; | 1321 friend class TestCodeRangeScope; |
1315 friend class v8::Isolate; | 1322 friend class v8::Isolate; |
1316 friend class v8::Locker; | 1323 friend class v8::Locker; |
1317 friend class v8::Unlocker; | 1324 friend class v8::Unlocker; |
1318 | 1325 |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1450 | 1457 |
1451 // Mark the native context with out of memory. | 1458 // Mark the native context with out of memory. |
1452 inline void Context::mark_out_of_memory() { | 1459 inline void Context::mark_out_of_memory() { |
1453 native_context()->set_out_of_memory(HEAP->true_value()); | 1460 native_context()->set_out_of_memory(HEAP->true_value()); |
1454 } | 1461 } |
1455 | 1462 |
1456 | 1463 |
1457 } } // namespace v8::internal | 1464 } } // namespace v8::internal |
1458 | 1465 |
1459 #endif // V8_ISOLATE_H_ | 1466 #endif // V8_ISOLATE_H_ |
OLD | NEW |