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 #include "vm/isolate.h" | 5 #include "vm/isolate.h" |
6 | 6 |
7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
8 #include "include/dart_native_api.h" | 8 #include "include/dart_native_api.h" |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 #include "platform/json.h" | 10 #include "platform/json.h" |
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
648 #define REUSABLE_HANDLE_SCOPE_INIT(object) \ | 648 #define REUSABLE_HANDLE_SCOPE_INIT(object) \ |
649 reusable_##object##_handle_scope_active_(false), | 649 reusable_##object##_handle_scope_active_(false), |
650 #else | 650 #else |
651 #define REUSABLE_HANDLE_SCOPE_INIT(object) | 651 #define REUSABLE_HANDLE_SCOPE_INIT(object) |
652 #endif // defined(DEBUG) | 652 #endif // defined(DEBUG) |
653 | 653 |
654 #define REUSABLE_HANDLE_INITIALIZERS(object) \ | 654 #define REUSABLE_HANDLE_INITIALIZERS(object) \ |
655 object##_handle_(NULL), | 655 object##_handle_(NULL), |
656 | 656 |
657 Isolate::Isolate(const Dart_IsolateFlags& api_flags) | 657 Isolate::Isolate(const Dart_IsolateFlags& api_flags) |
658 : vm_tag_(0), | 658 : stack_limit_(0), |
659 store_buffer_(new StoreBuffer()), | 659 store_buffer_(new StoreBuffer()), |
660 heap_(NULL), | 660 heap_(NULL), |
| 661 vm_tag_(0), |
| 662 user_tag_(0), |
| 663 current_tag_(UserTag::null()), |
| 664 default_tag_(UserTag::null()), |
| 665 class_table_(), |
| 666 single_step_(false), |
661 thread_registry_(new ThreadRegistry()), | 667 thread_registry_(new ThreadRegistry()), |
662 message_notify_callback_(NULL), | 668 message_notify_callback_(NULL), |
663 name_(NULL), | 669 name_(NULL), |
664 debugger_name_(NULL), | 670 debugger_name_(NULL), |
665 start_time_(OS::GetCurrentTimeMicros()), | 671 start_time_(OS::GetCurrentTimeMicros()), |
666 main_port_(0), | 672 main_port_(0), |
667 origin_id_(0), | 673 origin_id_(0), |
668 pause_capability_(0), | 674 pause_capability_(0), |
669 terminate_capability_(0), | 675 terminate_capability_(0), |
670 errors_fatal_(true), | 676 errors_fatal_(true), |
671 object_store_(NULL), | 677 object_store_(NULL), |
672 top_exit_frame_info_(0), | 678 top_exit_frame_info_(0), |
673 init_callback_data_(NULL), | 679 init_callback_data_(NULL), |
674 environment_callback_(NULL), | 680 environment_callback_(NULL), |
675 library_tag_handler_(NULL), | 681 library_tag_handler_(NULL), |
676 api_state_(NULL), | 682 api_state_(NULL), |
677 debugger_(NULL), | 683 debugger_(NULL), |
678 single_step_(false), | |
679 resume_request_(false), | 684 resume_request_(false), |
680 last_resume_timestamp_(OS::GetCurrentTimeMillis()), | 685 last_resume_timestamp_(OS::GetCurrentTimeMillis()), |
681 has_compiled_(false), | 686 has_compiled_(false), |
682 flags_(), | 687 flags_(), |
683 random_(), | 688 random_(), |
684 simulator_(NULL), | 689 simulator_(NULL), |
685 timer_list_(), | 690 timer_list_(), |
686 deopt_id_(0), | 691 deopt_id_(0), |
687 mutex_(new Mutex()), | 692 mutex_(new Mutex()), |
688 stack_limit_(0), | |
689 saved_stack_limit_(0), | 693 saved_stack_limit_(0), |
690 stack_base_(0), | 694 stack_base_(0), |
691 stack_overflow_flags_(0), | 695 stack_overflow_flags_(0), |
692 stack_overflow_count_(0), | 696 stack_overflow_count_(0), |
693 message_handler_(NULL), | 697 message_handler_(NULL), |
694 spawn_state_(NULL), | 698 spawn_state_(NULL), |
695 is_runnable_(false), | 699 is_runnable_(false), |
696 gc_prologue_callback_(NULL), | 700 gc_prologue_callback_(NULL), |
697 gc_epilogue_callback_(NULL), | 701 gc_epilogue_callback_(NULL), |
698 defer_finalization_count_(0), | 702 defer_finalization_count_(0), |
699 deopt_context_(NULL), | 703 deopt_context_(NULL), |
700 edge_counter_increment_size_(-1), | 704 edge_counter_increment_size_(-1), |
701 compiler_stats_(NULL), | 705 compiler_stats_(NULL), |
702 is_service_isolate_(false), | 706 is_service_isolate_(false), |
703 stacktrace_(NULL), | 707 stacktrace_(NULL), |
704 stack_frame_index_(-1), | 708 stack_frame_index_(-1), |
705 last_allocationprofile_accumulator_reset_timestamp_(0), | 709 last_allocationprofile_accumulator_reset_timestamp_(0), |
706 last_allocationprofile_gc_timestamp_(0), | 710 last_allocationprofile_gc_timestamp_(0), |
707 object_id_ring_(NULL), | 711 object_id_ring_(NULL), |
708 trace_buffer_(NULL), | 712 trace_buffer_(NULL), |
709 profiler_data_(NULL), | 713 profiler_data_(NULL), |
710 tag_table_(GrowableObjectArray::null()), | 714 tag_table_(GrowableObjectArray::null()), |
711 current_tag_(UserTag::null()), | |
712 default_tag_(UserTag::null()), | |
713 collected_closures_(GrowableObjectArray::null()), | 715 collected_closures_(GrowableObjectArray::null()), |
714 deoptimized_code_array_(GrowableObjectArray::null()), | 716 deoptimized_code_array_(GrowableObjectArray::null()), |
715 pending_service_extension_calls_(GrowableObjectArray::null()), | 717 pending_service_extension_calls_(GrowableObjectArray::null()), |
716 registered_service_extension_handlers_(GrowableObjectArray::null()), | 718 registered_service_extension_handlers_(GrowableObjectArray::null()), |
717 metrics_list_head_(NULL), | 719 metrics_list_head_(NULL), |
718 compilation_allowed_(true), | 720 compilation_allowed_(true), |
719 cha_(NULL), | 721 cha_(NULL), |
720 next_(NULL), | 722 next_(NULL), |
721 pause_loop_monitor_(NULL), | 723 pause_loop_monitor_(NULL), |
722 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_INITIALIZERS) | 724 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_INITIALIZERS) |
(...skipping 1770 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2493 serialized_message_, serialized_message_len_); | 2495 serialized_message_, serialized_message_len_); |
2494 } | 2496 } |
2495 | 2497 |
2496 | 2498 |
2497 void IsolateSpawnState::Cleanup() { | 2499 void IsolateSpawnState::Cleanup() { |
2498 SwitchIsolateScope switch_scope(I); | 2500 SwitchIsolateScope switch_scope(I); |
2499 Dart::ShutdownIsolate(); | 2501 Dart::ShutdownIsolate(); |
2500 } | 2502 } |
2501 | 2503 |
2502 } // namespace dart | 2504 } // namespace dart |
OLD | NEW |