OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_ISOLATE_H_ | 5 #ifndef VM_ISOLATE_H_ |
6 #define VM_ISOLATE_H_ | 6 #define VM_ISOLATE_H_ |
7 | 7 |
8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 #include "vm/base_isolate.h" | 10 #include "vm/base_isolate.h" |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 static inline Isolate* Current() { | 113 static inline Isolate* Current() { |
114 return reinterpret_cast<Isolate*>(Thread::GetThreadLocal(isolate_key)); | 114 return reinterpret_cast<Isolate*>(Thread::GetThreadLocal(isolate_key)); |
115 } | 115 } |
116 | 116 |
117 static void SetCurrent(Isolate* isolate); | 117 static void SetCurrent(Isolate* isolate); |
118 | 118 |
119 static void InitOnce(); | 119 static void InitOnce(); |
120 static Isolate* Init(const char* name_prefix); | 120 static Isolate* Init(const char* name_prefix); |
121 void Shutdown(); | 121 void Shutdown(); |
122 | 122 |
| 123 Isolate* ShallowCopy(); |
| 124 |
123 // Register a newly introduced class. | 125 // Register a newly introduced class. |
124 void RegisterClass(const Class& cls); | 126 void RegisterClass(const Class& cls); |
125 void RegisterClassAt(intptr_t index, const Class& cls); | 127 void RegisterClassAt(intptr_t index, const Class& cls); |
126 void ValidateClassTable(); | 128 void ValidateClassTable(); |
127 | 129 |
128 // Visit all object pointers. | 130 // Visit all object pointers. |
129 void VisitObjectPointers(ObjectPointerVisitor* visitor, | 131 void VisitObjectPointers(ObjectPointerVisitor* visitor, |
130 bool visit_prologue_weak_persistent_handles, | 132 bool visit_prologue_weak_persistent_handles, |
131 bool validate_frames); | 133 bool validate_frames); |
132 | 134 |
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
595 } | 597 } |
596 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE) | 598 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE) |
597 #undef REUSABLE_HANDLE | 599 #undef REUSABLE_HANDLE |
598 | 600 |
599 static void VisitIsolates(IsolateVisitor* visitor); | 601 static void VisitIsolates(IsolateVisitor* visitor); |
600 | 602 |
601 Counters* counters() { return &counters_; } | 603 Counters* counters() { return &counters_; } |
602 | 604 |
603 private: | 605 private: |
604 Isolate(); | 606 Isolate(); |
| 607 explicit Isolate(Isolate* original); |
605 | 608 |
606 void BuildName(const char* name_prefix); | 609 void BuildName(const char* name_prefix); |
607 void PrintInvokedFunctions(); | 610 void PrintInvokedFunctions(); |
608 | 611 |
609 void ProfileIdle(); | 612 void ProfileIdle(); |
610 | 613 |
611 void set_user_tag(uword tag) { | 614 void set_user_tag(uword tag) { |
612 user_tag_ = tag; | 615 user_tag_ = tag; |
613 } | 616 } |
614 | 617 |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
838 char* exception_callback_name_; | 841 char* exception_callback_name_; |
839 uint8_t* serialized_args_; | 842 uint8_t* serialized_args_; |
840 intptr_t serialized_args_len_; | 843 intptr_t serialized_args_len_; |
841 uint8_t* serialized_message_; | 844 uint8_t* serialized_message_; |
842 intptr_t serialized_message_len_; | 845 intptr_t serialized_message_len_; |
843 }; | 846 }; |
844 | 847 |
845 } // namespace dart | 848 } // namespace dart |
846 | 849 |
847 #endif // VM_ISOLATE_H_ | 850 #endif // VM_ISOLATE_H_ |
OLD | NEW |