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 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
543 intptr_t UnblockClassFinalization() { | 543 intptr_t UnblockClassFinalization() { |
544 ASSERT(defer_finalization_count_ > 0); | 544 ASSERT(defer_finalization_count_ > 0); |
545 return defer_finalization_count_--; | 545 return defer_finalization_count_--; |
546 } | 546 } |
547 | 547 |
548 bool AllowClassFinalization() { | 548 bool AllowClassFinalization() { |
549 ASSERT(defer_finalization_count_ >= 0); | 549 ASSERT(defer_finalization_count_ >= 0); |
550 return defer_finalization_count_ == 0; | 550 return defer_finalization_count_ == 0; |
551 } | 551 } |
552 | 552 |
| 553 Mutex* profiler_data_mutex() { |
| 554 return &profiler_data_mutex_; |
| 555 } |
| 556 |
| 557 void set_profiler_data(IsolateProfilerData* profiler_data) { |
| 558 profiler_data_ = profiler_data; |
| 559 } |
| 560 |
| 561 IsolateProfilerData* profiler_data() const { |
| 562 return profiler_data_; |
| 563 } |
| 564 |
553 void PrintJSON(JSONStream* stream, bool ref = true); | 565 void PrintJSON(JSONStream* stream, bool ref = true); |
554 | 566 |
555 CompilerStats* compiler_stats() { | 567 CompilerStats* compiler_stats() { |
556 return compiler_stats_; | 568 return compiler_stats_; |
557 } | 569 } |
558 | 570 |
| 571 // Returns the number of sampled threads. |
| 572 intptr_t ProfileInterrupt(); |
| 573 |
559 VMTagCounters* vm_tag_counters() { | 574 VMTagCounters* vm_tag_counters() { |
560 return &vm_tag_counters_; | 575 return &vm_tag_counters_; |
561 } | 576 } |
562 | 577 |
563 uword user_tag() const { | 578 uword user_tag() const { |
564 return user_tag_; | 579 return user_tag_; |
565 } | 580 } |
566 static intptr_t user_tag_offset() { | 581 static intptr_t user_tag_offset() { |
567 return OFFSET_OF(Isolate, user_tag_); | 582 return OFFSET_OF(Isolate, user_tag_); |
568 } | 583 } |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 // Timestamps of last operation via service. | 789 // Timestamps of last operation via service. |
775 int64_t last_allocationprofile_accumulator_reset_timestamp_; | 790 int64_t last_allocationprofile_accumulator_reset_timestamp_; |
776 int64_t last_allocationprofile_gc_timestamp_; | 791 int64_t last_allocationprofile_gc_timestamp_; |
777 | 792 |
778 // Ring buffer of objects assigned an id. | 793 // Ring buffer of objects assigned an id. |
779 ObjectIdRing* object_id_ring_; | 794 ObjectIdRing* object_id_ring_; |
780 | 795 |
781 // Trace buffer support. | 796 // Trace buffer support. |
782 TraceBuffer* trace_buffer_; | 797 TraceBuffer* trace_buffer_; |
783 | 798 |
| 799 IsolateProfilerData* profiler_data_; |
| 800 Mutex profiler_data_mutex_; |
| 801 |
784 VMTagCounters vm_tag_counters_; | 802 VMTagCounters vm_tag_counters_; |
785 RawGrowableObjectArray* tag_table_; | 803 RawGrowableObjectArray* tag_table_; |
786 | 804 |
787 RawGrowableObjectArray* deoptimized_code_array_; | 805 RawGrowableObjectArray* deoptimized_code_array_; |
788 | 806 |
789 // Background compilation. | 807 // Background compilation. |
790 BackgroundCompiler* background_compiler_; | 808 BackgroundCompiler* background_compiler_; |
791 | 809 |
792 // We use 6 list entries for each pending service extension calls. | 810 // We use 6 list entries for each pending service extension calls. |
793 enum { | 811 enum { |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
971 uint8_t* serialized_message_; | 989 uint8_t* serialized_message_; |
972 intptr_t serialized_message_len_; | 990 intptr_t serialized_message_len_; |
973 Isolate::Flags isolate_flags_; | 991 Isolate::Flags isolate_flags_; |
974 bool paused_; | 992 bool paused_; |
975 bool errors_are_fatal_; | 993 bool errors_are_fatal_; |
976 }; | 994 }; |
977 | 995 |
978 } // namespace dart | 996 } // namespace dart |
979 | 997 |
980 #endif // VM_ISOLATE_H_ | 998 #endif // VM_ISOLATE_H_ |
OLD | NEW |