| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 RUNTIME_VM_THREAD_H_ | 5 #ifndef RUNTIME_VM_THREAD_H_ |
| 6 #define RUNTIME_VM_THREAD_H_ | 6 #define RUNTIME_VM_THREAD_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 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 464 LongJumpScope* long_jump_base() const { return long_jump_base_; } | 464 LongJumpScope* long_jump_base() const { return long_jump_base_; } |
| 465 void set_long_jump_base(LongJumpScope* value) { long_jump_base_ = value; } | 465 void set_long_jump_base(LongJumpScope* value) { long_jump_base_ = value; } |
| 466 | 466 |
| 467 uword vm_tag() const { return vm_tag_; } | 467 uword vm_tag() const { return vm_tag_; } |
| 468 void set_vm_tag(uword tag) { vm_tag_ = tag; } | 468 void set_vm_tag(uword tag) { vm_tag_ = tag; } |
| 469 static intptr_t vm_tag_offset() { return OFFSET_OF(Thread, vm_tag_); } | 469 static intptr_t vm_tag_offset() { return OFFSET_OF(Thread, vm_tag_); } |
| 470 | 470 |
| 471 RawGrowableObjectArray* pending_functions(); | 471 RawGrowableObjectArray* pending_functions(); |
| 472 void clear_pending_functions(); | 472 void clear_pending_functions(); |
| 473 | 473 |
| 474 RawObject* active_exception() const { return active_exception_; } | |
| 475 void set_active_exception(const Object& value); | |
| 476 static intptr_t active_exception_offset() { | |
| 477 return OFFSET_OF(Thread, active_exception_); | |
| 478 } | |
| 479 | |
| 480 RawObject* active_stacktrace() const { return active_stacktrace_; } | |
| 481 void set_active_stacktrace(const Object& value); | |
| 482 static intptr_t active_stacktrace_offset() { | |
| 483 return OFFSET_OF(Thread, active_stacktrace_); | |
| 484 } | |
| 485 | |
| 486 uword resume_pc() const { return resume_pc_; } | |
| 487 void set_resume_pc(uword value) { resume_pc_ = value; } | |
| 488 static uword resume_pc_offset() { return OFFSET_OF(Thread, resume_pc_); } | |
| 489 | |
| 490 RawError* sticky_error() const; | 474 RawError* sticky_error() const; |
| 491 void set_sticky_error(const Error& value); | 475 void set_sticky_error(const Error& value); |
| 492 void clear_sticky_error(); | 476 void clear_sticky_error(); |
| 493 | 477 |
| 494 CompilerStats* compiler_stats() { return compiler_stats_; } | 478 CompilerStats* compiler_stats() { return compiler_stats_; } |
| 495 | 479 |
| 496 #if defined(DEBUG) | 480 #if defined(DEBUG) |
| 497 #define REUSABLE_HANDLE_SCOPE_ACCESSORS(object) \ | 481 #define REUSABLE_HANDLE_SCOPE_ACCESSORS(object) \ |
| 498 void set_reusable_##object##_handle_scope_active(bool value) { \ | 482 void set_reusable_##object##_handle_scope_active(bool value) { \ |
| 499 reusable_##object##_handle_scope_active_ = value; \ | 483 reusable_##object##_handle_scope_active_ = value; \ |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 693 uint16_t deferred_interrupts_mask_; | 677 uint16_t deferred_interrupts_mask_; |
| 694 uint16_t deferred_interrupts_; | 678 uint16_t deferred_interrupts_; |
| 695 int32_t stack_overflow_count_; | 679 int32_t stack_overflow_count_; |
| 696 | 680 |
| 697 // Compiler state: | 681 // Compiler state: |
| 698 CHA* cha_; | 682 CHA* cha_; |
| 699 TypeRangeCache* type_range_cache_; | 683 TypeRangeCache* type_range_cache_; |
| 700 intptr_t deopt_id_; // Compilation specific counter. | 684 intptr_t deopt_id_; // Compilation specific counter. |
| 701 RawGrowableObjectArray* pending_functions_; | 685 RawGrowableObjectArray* pending_functions_; |
| 702 | 686 |
| 703 // JumpToExceptionHandler state: | |
| 704 RawObject* active_exception_; | |
| 705 RawObject* active_stacktrace_; | |
| 706 uword resume_pc_; | |
| 707 | |
| 708 RawError* sticky_error_; | 687 RawError* sticky_error_; |
| 709 | 688 |
| 710 CompilerStats* compiler_stats_; | 689 CompilerStats* compiler_stats_; |
| 711 | 690 |
| 712 // Reusable handles support. | 691 // Reusable handles support. |
| 713 #define REUSABLE_HANDLE_FIELDS(object) object* object##_handle_; | 692 #define REUSABLE_HANDLE_FIELDS(object) object* object##_handle_; |
| 714 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_FIELDS) | 693 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_FIELDS) |
| 715 #undef REUSABLE_HANDLE_FIELDS | 694 #undef REUSABLE_HANDLE_FIELDS |
| 716 | 695 |
| 717 #if defined(DEBUG) | 696 #if defined(DEBUG) |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 776 // Disable thread interrupts. | 755 // Disable thread interrupts. |
| 777 class DisableThreadInterruptsScope : public StackResource { | 756 class DisableThreadInterruptsScope : public StackResource { |
| 778 public: | 757 public: |
| 779 explicit DisableThreadInterruptsScope(Thread* thread); | 758 explicit DisableThreadInterruptsScope(Thread* thread); |
| 780 ~DisableThreadInterruptsScope(); | 759 ~DisableThreadInterruptsScope(); |
| 781 }; | 760 }; |
| 782 | 761 |
| 783 } // namespace dart | 762 } // namespace dart |
| 784 | 763 |
| 785 #endif // RUNTIME_VM_THREAD_H_ | 764 #endif // RUNTIME_VM_THREAD_H_ |
| OLD | NEW |