| 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 651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 662 object& object##Handle() const { \ | 662 object& object##Handle() const { \ |
| 663 return *object##_handle_; \ | 663 return *object##_handle_; \ |
| 664 } | 664 } |
| 665 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE) | 665 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE) |
| 666 #undef REUSABLE_HANDLE | 666 #undef REUSABLE_HANDLE |
| 667 | 667 |
| 668 static void VisitIsolates(IsolateVisitor* visitor); | 668 static void VisitIsolates(IsolateVisitor* visitor); |
| 669 | 669 |
| 670 Counters* counters() { return &counters_; } | 670 Counters* counters() { return &counters_; } |
| 671 | 671 |
| 672 // Handle service messages until we are told to resume execution. |
| 673 void PauseEventHandler(); |
| 674 |
| 672 private: | 675 private: |
| 673 Isolate(); | 676 Isolate(); |
| 674 explicit Isolate(Isolate* original); | 677 explicit Isolate(Isolate* original); |
| 675 | 678 |
| 676 void BuildName(const char* name_prefix); | 679 void BuildName(const char* name_prefix); |
| 677 void PrintInvokedFunctions(); | 680 void PrintInvokedFunctions(); |
| 678 | 681 |
| 679 void ProfileIdle(); | 682 void ProfileIdle(); |
| 680 | 683 |
| 681 void set_user_tag(uword tag) { | 684 void set_user_tag(uword tag) { |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 767 Metric* metrics_list_head_; | 770 Metric* metrics_list_head_; |
| 768 | 771 |
| 769 Counters counters_; | 772 Counters counters_; |
| 770 | 773 |
| 771 // TODO(23153): Move this out of Isolate/Thread. | 774 // TODO(23153): Move this out of Isolate/Thread. |
| 772 CHA* cha_; | 775 CHA* cha_; |
| 773 | 776 |
| 774 // Isolate list next pointer. | 777 // Isolate list next pointer. |
| 775 Isolate* next_; | 778 Isolate* next_; |
| 776 | 779 |
| 780 // Used to wake the isolate when it is in the pause event loop. |
| 781 Monitor* pause_loop_monitor_; |
| 782 |
| 777 // Reusable handles support. | 783 // Reusable handles support. |
| 778 #define REUSABLE_HANDLE_FIELDS(object) \ | 784 #define REUSABLE_HANDLE_FIELDS(object) \ |
| 779 object* object##_handle_; | 785 object* object##_handle_; |
| 780 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_FIELDS) | 786 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_FIELDS) |
| 781 #undef REUSABLE_HANDLE_FIELDS | 787 #undef REUSABLE_HANDLE_FIELDS |
| 782 | 788 |
| 783 #if defined(DEBUG) | 789 #if defined(DEBUG) |
| 784 #define REUSABLE_HANDLE_SCOPE_VARIABLE(object) \ | 790 #define REUSABLE_HANDLE_SCOPE_VARIABLE(object) \ |
| 785 bool reusable_##object##_handle_scope_active_; | 791 bool reusable_##object##_handle_scope_active_; |
| 786 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_SCOPE_VARIABLE); | 792 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_SCOPE_VARIABLE); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 798 static Dart_IsolateInterruptCallback interrupt_callback_; | 804 static Dart_IsolateInterruptCallback interrupt_callback_; |
| 799 static Dart_IsolateUnhandledExceptionCallback unhandled_exception_callback_; | 805 static Dart_IsolateUnhandledExceptionCallback unhandled_exception_callback_; |
| 800 static Dart_IsolateShutdownCallback shutdown_callback_; | 806 static Dart_IsolateShutdownCallback shutdown_callback_; |
| 801 static Dart_FileOpenCallback file_open_callback_; | 807 static Dart_FileOpenCallback file_open_callback_; |
| 802 static Dart_FileReadCallback file_read_callback_; | 808 static Dart_FileReadCallback file_read_callback_; |
| 803 static Dart_FileWriteCallback file_write_callback_; | 809 static Dart_FileWriteCallback file_write_callback_; |
| 804 static Dart_FileCloseCallback file_close_callback_; | 810 static Dart_FileCloseCallback file_close_callback_; |
| 805 static Dart_EntropySource entropy_source_callback_; | 811 static Dart_EntropySource entropy_source_callback_; |
| 806 static Dart_IsolateInterruptCallback vmstats_callback_; | 812 static Dart_IsolateInterruptCallback vmstats_callback_; |
| 807 | 813 |
| 814 static void WakePauseEventHandler(Dart_Isolate isolate); |
| 815 |
| 808 // Manage list of existing isolates. | 816 // Manage list of existing isolates. |
| 809 static void AddIsolateTolist(Isolate* isolate); | 817 static void AddIsolateTolist(Isolate* isolate); |
| 810 static void RemoveIsolateFromList(Isolate* isolate); | 818 static void RemoveIsolateFromList(Isolate* isolate); |
| 811 static void CheckForDuplicateThreadState(InterruptableThreadState* state); | 819 static void CheckForDuplicateThreadState(InterruptableThreadState* state); |
| 812 | 820 |
| 813 static Monitor* isolates_list_monitor_; // Protects isolates_list_head_ | 821 static Monitor* isolates_list_monitor_; // Protects isolates_list_head_ |
| 814 static Isolate* isolates_list_head_; | 822 static Isolate* isolates_list_head_; |
| 815 | 823 |
| 816 #define REUSABLE_FRIEND_DECLARATION(name) \ | 824 #define REUSABLE_FRIEND_DECLARATION(name) \ |
| 817 friend class Reusable##name##HandleScope; | 825 friend class Reusable##name##HandleScope; |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 950 uint8_t* serialized_args_; | 958 uint8_t* serialized_args_; |
| 951 intptr_t serialized_args_len_; | 959 intptr_t serialized_args_len_; |
| 952 uint8_t* serialized_message_; | 960 uint8_t* serialized_message_; |
| 953 intptr_t serialized_message_len_; | 961 intptr_t serialized_message_len_; |
| 954 bool paused_; | 962 bool paused_; |
| 955 }; | 963 }; |
| 956 | 964 |
| 957 } // namespace dart | 965 } // namespace dart |
| 958 | 966 |
| 959 #endif // VM_ISOLATE_H_ | 967 #endif // VM_ISOLATE_H_ |
| OLD | NEW |