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 "platform/thread.h" | 10 #include "platform/thread.h" |
| 11 #include "vm/base_isolate.h" | 11 #include "vm/base_isolate.h" |
| 12 #include "vm/class_table.h" | 12 #include "vm/class_table.h" |
| 13 #include "vm/counters.h" | 13 #include "vm/counters.h" |
| 14 #include "vm/handles.h" | 14 #include "vm/handles.h" |
| 15 #include "vm/megamorphic_cache_table.h" | 15 #include "vm/megamorphic_cache_table.h" |
| 16 #include "vm/random.h" | 16 #include "vm/random.h" |
| 17 #include "vm/store_buffer.h" | 17 #include "vm/store_buffer.h" |
| 18 #include "vm/tags.h" | 18 #include "vm/tags.h" |
| 19 #include "vm/trace_buffer.h" | 19 #include "vm/trace_buffer.h" |
| 20 #include "vm/timer.h" | 20 #include "vm/timer.h" |
| 21 | 21 |
| 22 namespace dart { | 22 namespace dart { |
| 23 | 23 |
| 24 // Forward declarations. | 24 // Forward declarations. |
| 25 class AbstractType; | 25 class AbstractType; |
| 26 class ApiState; | 26 class ApiState; |
| 27 class Array; | 27 class Array; |
| 28 class Capability; | |
| 28 class Class; | 29 class Class; |
| 29 class Code; | 30 class Code; |
| 30 class CodeIndexTable; | 31 class CodeIndexTable; |
| 31 class Debugger; | 32 class Debugger; |
| 32 class DeoptContext; | 33 class DeoptContext; |
| 33 class Error; | 34 class Error; |
| 34 class ExceptionHandlers; | 35 class ExceptionHandlers; |
| 35 class Field; | 36 class Field; |
| 36 class Function; | 37 class Function; |
| 37 class GrowableObjectArray; | 38 class GrowableObjectArray; |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 158 | 159 |
| 159 const char* name() const { return name_; } | 160 const char* name() const { return name_; } |
| 160 | 161 |
| 161 int64_t start_time() const { return start_time_; } | 162 int64_t start_time() const { return start_time_; } |
| 162 | 163 |
| 163 Dart_Port main_port() const { return main_port_; } | 164 Dart_Port main_port() const { return main_port_; } |
| 164 void set_main_port(Dart_Port port) { | 165 void set_main_port(Dart_Port port) { |
| 165 ASSERT(main_port_ == 0); // Only set main port once. | 166 ASSERT(main_port_ == 0); // Only set main port once. |
| 166 main_port_ = port; | 167 main_port_ = port; |
| 167 } | 168 } |
| 169 void set_pause_capability(uint64_t value) { pause_capability_ = value; } | |
| 170 uint64_t pause_capability() const { return pause_capability_; } | |
| 171 void set_terminate_capability(uint64_t value) { | |
| 172 terminate_capability_ = value; | |
| 173 } | |
| 174 uint64_t terminate_capability() const { return terminate_capability_; } | |
| 168 | 175 |
| 169 Heap* heap() const { return heap_; } | 176 Heap* heap() const { return heap_; } |
| 170 void set_heap(Heap* value) { heap_ = value; } | 177 void set_heap(Heap* value) { heap_ = value; } |
| 171 static intptr_t heap_offset() { return OFFSET_OF(Isolate, heap_); } | 178 static intptr_t heap_offset() { return OFFSET_OF(Isolate, heap_); } |
| 172 | 179 |
| 173 ObjectStore* object_store() const { return object_store_; } | 180 ObjectStore* object_store() const { return object_store_; } |
| 174 void set_object_store(ObjectStore* value) { object_store_ = value; } | 181 void set_object_store(ObjectStore* value) { object_store_ = value; } |
| 175 static intptr_t object_store_offset() { | 182 static intptr_t object_store_offset() { |
| 176 return OFFSET_OF(Isolate, object_store_); | 183 return OFFSET_OF(Isolate, object_store_); |
| 177 } | 184 } |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 347 } | 354 } |
| 348 | 355 |
| 349 // Returns whether the vm service has requested that the debugger | 356 // Returns whether the vm service has requested that the debugger |
| 350 // resume execution. | 357 // resume execution. |
| 351 bool GetAndClearResumeRequest() { | 358 bool GetAndClearResumeRequest() { |
| 352 bool resume_request = resume_request_; | 359 bool resume_request = resume_request_; |
| 353 resume_request_ = false; | 360 resume_request_ = false; |
| 354 return resume_request; | 361 return resume_request; |
| 355 } | 362 } |
| 356 | 363 |
| 364 // Verify that the sender had the capability to pause this isolate. | |
|
siva
2014/07/01 21:42:56
sender has
Ivan Posva
2014/07/03 12:51:17
Done.
| |
| 365 bool VerifyPauseCapability(const Capability& capability); | |
|
siva
2014/07/01 21:42:56
) const;
Ivan Posva
2014/07/03 12:51:16
Done.
| |
| 366 // Returns true if the capability was added or removed from this isolate's | |
| 367 // list of pause events. | |
| 368 bool AddPauseCapability(const Capability& capability); | |
|
Ivan Posva
2014/07/03 12:51:17
Renamed to resume capabilities and refactored the
| |
| 369 bool RemovePauseCapability(const Capability& capability); | |
| 370 | |
| 357 Random* random() { return &random_; } | 371 Random* random() { return &random_; } |
| 358 | 372 |
| 359 Simulator* simulator() const { return simulator_; } | 373 Simulator* simulator() const { return simulator_; } |
| 360 void set_simulator(Simulator* value) { simulator_ = value; } | 374 void set_simulator(Simulator* value) { simulator_ = value; } |
| 361 | 375 |
| 362 Dart_GcPrologueCallback gc_prologue_callback() const { | 376 Dart_GcPrologueCallback gc_prologue_callback() const { |
| 363 return gc_prologue_callback_; | 377 return gc_prologue_callback_; |
| 364 } | 378 } |
| 365 | 379 |
| 366 void set_gc_prologue_callback(Dart_GcPrologueCallback callback) { | 380 void set_gc_prologue_callback(Dart_GcPrologueCallback callback) { |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 586 | 600 |
| 587 static ThreadLocalKey isolate_key; | 601 static ThreadLocalKey isolate_key; |
| 588 | 602 |
| 589 StoreBuffer store_buffer_; | 603 StoreBuffer store_buffer_; |
| 590 ClassTable class_table_; | 604 ClassTable class_table_; |
| 591 MegamorphicCacheTable megamorphic_cache_table_; | 605 MegamorphicCacheTable megamorphic_cache_table_; |
| 592 Dart_MessageNotifyCallback message_notify_callback_; | 606 Dart_MessageNotifyCallback message_notify_callback_; |
| 593 char* name_; | 607 char* name_; |
| 594 int64_t start_time_; | 608 int64_t start_time_; |
| 595 Dart_Port main_port_; | 609 Dart_Port main_port_; |
| 610 uint64_t pause_capability_; | |
| 611 uint64_t terminate_capability_; | |
| 596 Heap* heap_; | 612 Heap* heap_; |
| 597 ObjectStore* object_store_; | 613 ObjectStore* object_store_; |
| 598 RawContext* top_context_; | 614 RawContext* top_context_; |
| 599 uword top_exit_frame_info_; | 615 uword top_exit_frame_info_; |
| 600 void* init_callback_data_; | 616 void* init_callback_data_; |
| 601 Dart_EnvironmentCallback environment_callback_; | 617 Dart_EnvironmentCallback environment_callback_; |
| 602 Dart_LibraryTagHandler library_tag_handler_; | 618 Dart_LibraryTagHandler library_tag_handler_; |
| 603 ApiState* api_state_; | 619 ApiState* api_state_; |
| 604 StubCode* stub_code_; | 620 StubCode* stub_code_; |
| 605 Debugger* debugger_; | 621 Debugger* debugger_; |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 784 char* script_url_; | 800 char* script_url_; |
| 785 char* library_url_; | 801 char* library_url_; |
| 786 char* class_name_; | 802 char* class_name_; |
| 787 char* function_name_; | 803 char* function_name_; |
| 788 char* exception_callback_name_; | 804 char* exception_callback_name_; |
| 789 }; | 805 }; |
| 790 | 806 |
| 791 } // namespace dart | 807 } // namespace dart |
| 792 | 808 |
| 793 #endif // VM_ISOLATE_H_ | 809 #endif // VM_ISOLATE_H_ |
| OLD | NEW |