Chromium Code Reviews| 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/atomic.h" | 10 #include "vm/atomic.h" |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 170 return OFFSET_OF(Isolate, ic_miss_code_); | 170 return OFFSET_OF(Isolate, ic_miss_code_); |
| 171 } | 171 } |
| 172 | 172 |
| 173 Dart_MessageNotifyCallback message_notify_callback() const { | 173 Dart_MessageNotifyCallback message_notify_callback() const { |
| 174 return message_notify_callback_; | 174 return message_notify_callback_; |
| 175 } | 175 } |
| 176 void set_message_notify_callback(Dart_MessageNotifyCallback value) { | 176 void set_message_notify_callback(Dart_MessageNotifyCallback value) { |
| 177 message_notify_callback_ = value; | 177 message_notify_callback_ = value; |
| 178 } | 178 } |
| 179 | 179 |
| 180 // Limited public access to BaseIsolate::mutator_thread_ for code that | 180 Thread* mutator_thread() const; |
| 181 // must treat the mutator as the default or a special case. Prefer code | |
| 182 // that works uniformly across all threads. | |
| 183 bool HasMutatorThread() { | |
| 184 return mutator_thread_ != NULL; | |
| 185 } | |
| 186 Thread* mutator_thread() const { | |
| 187 return mutator_thread_; | |
|
Florian Schneider
2016/07/28 18:13:36
Can you remove mutator_thread_ in BaseIsolate? It
siva
2016/07/28 20:15:10
The field is still used in EnterIsolate to ensure
| |
| 188 } | |
| 189 | 181 |
| 190 const char* name() const { return name_; } | 182 const char* name() const { return name_; } |
| 191 const char* debugger_name() const { return debugger_name_; } | 183 const char* debugger_name() const { return debugger_name_; } |
| 192 void set_debugger_name(const char* name); | 184 void set_debugger_name(const char* name); |
| 193 | 185 |
| 194 int64_t start_time() const { return start_time_; } | 186 int64_t start_time() const { return start_time_; } |
| 195 | 187 |
| 196 Dart_Port main_port() const { return main_port_; } | 188 Dart_Port main_port() const { return main_port_; } |
| 197 void set_main_port(Dart_Port port) { | 189 void set_main_port(Dart_Port port) { |
| 198 ASSERT(main_port_ == 0); // Only set main port once. | 190 ASSERT(main_port_ == 0); // Only set main port once. |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 459 ASSERT(defer_finalization_count_ >= 0); | 451 ASSERT(defer_finalization_count_ >= 0); |
| 460 return defer_finalization_count_ == 0; | 452 return defer_finalization_count_ == 0; |
| 461 } | 453 } |
| 462 | 454 |
| 463 #ifndef PRODUCT | 455 #ifndef PRODUCT |
| 464 void PrintJSON(JSONStream* stream, bool ref = true); | 456 void PrintJSON(JSONStream* stream, bool ref = true); |
| 465 #endif | 457 #endif |
| 466 | 458 |
| 467 // Mutator thread is used to aggregate compiler stats. | 459 // Mutator thread is used to aggregate compiler stats. |
| 468 CompilerStats* aggregate_compiler_stats() { | 460 CompilerStats* aggregate_compiler_stats() { |
| 469 ASSERT(HasMutatorThread()); | 461 return mutator_thread()->compiler_stats(); |
| 470 return mutator_thread_->compiler_stats(); | |
| 471 } | 462 } |
| 472 | 463 |
| 473 VMTagCounters* vm_tag_counters() { | 464 VMTagCounters* vm_tag_counters() { |
| 474 return &vm_tag_counters_; | 465 return &vm_tag_counters_; |
| 475 } | 466 } |
| 476 | 467 |
| 477 bool IsReloading() const { | 468 bool IsReloading() const { |
| 478 return reload_context_ != NULL; | 469 return reload_context_ != NULL; |
| 479 } | 470 } |
| 480 | 471 |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 686 const GrowableObjectArray& value); | 677 const GrowableObjectArray& value); |
| 687 | 678 |
| 688 Monitor* threads_lock() const; | 679 Monitor* threads_lock() const; |
| 689 Thread* ScheduleThread(bool is_mutator, bool bypass_safepoint = false); | 680 Thread* ScheduleThread(bool is_mutator, bool bypass_safepoint = false); |
| 690 void UnscheduleThread( | 681 void UnscheduleThread( |
| 691 Thread* thread, bool is_mutator, bool bypass_safepoint = false); | 682 Thread* thread, bool is_mutator, bool bypass_safepoint = false); |
| 692 | 683 |
| 693 // DEPRECATED: Use Thread's methods instead. During migration, these default | 684 // DEPRECATED: Use Thread's methods instead. During migration, these default |
| 694 // to using the mutator thread (which must also be the current thread). | 685 // to using the mutator thread (which must also be the current thread). |
| 695 Zone* current_zone() const { | 686 Zone* current_zone() const { |
| 696 ASSERT(Thread::Current() == mutator_thread_); | 687 ASSERT(Thread::Current() == mutator_thread()); |
| 697 return mutator_thread_->zone(); | 688 return mutator_thread()->zone(); |
| 698 } | 689 } |
| 699 | 690 |
| 700 // Accessed from generated code: | 691 // Accessed from generated code: |
| 701 StoreBuffer* store_buffer_; | 692 StoreBuffer* store_buffer_; |
| 702 Heap* heap_; | 693 Heap* heap_; |
| 703 uword user_tag_; | 694 uword user_tag_; |
| 704 RawUserTag* current_tag_; | 695 RawUserTag* current_tag_; |
| 705 RawUserTag* default_tag_; | 696 RawUserTag* default_tag_; |
| 706 RawCode* ic_miss_code_; | 697 RawCode* ic_miss_code_; |
| 707 ClassTable class_table_; | 698 ClassTable class_table_; |
| (...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 994 intptr_t* spawn_count_; | 985 intptr_t* spawn_count_; |
| 995 | 986 |
| 996 Dart_IsolateFlags isolate_flags_; | 987 Dart_IsolateFlags isolate_flags_; |
| 997 bool paused_; | 988 bool paused_; |
| 998 bool errors_are_fatal_; | 989 bool errors_are_fatal_; |
| 999 }; | 990 }; |
| 1000 | 991 |
| 1001 } // namespace dart | 992 } // namespace dart |
| 1002 | 993 |
| 1003 #endif // VM_ISOLATE_H_ | 994 #endif // VM_ISOLATE_H_ |
| OLD | NEW |