659
660 public:
661 void entering_jvmti_env_iteration() { ++_jvmti_env_iteration_count; }
662 void leaving_jvmti_env_iteration() { --_jvmti_env_iteration_count; }
663 bool is_inside_jvmti_env_iteration() { return _jvmti_env_iteration_count > 0; }
664
665 // Code generation
666 static ByteSize exception_file_offset() { return byte_offset_of(Thread, _exception_file); }
667 static ByteSize exception_line_offset() { return byte_offset_of(Thread, _exception_line); }
668 static ByteSize active_handles_offset() { return byte_offset_of(Thread, _active_handles); }
669
670 static ByteSize stack_base_offset() { return byte_offset_of(Thread, _stack_base); }
671 static ByteSize stack_size_offset() { return byte_offset_of(Thread, _stack_size); }
672
673 static ByteSize polling_page_offset() { return byte_offset_of(Thread, _polling_page); }
674
675 #define TLAB_FIELD_OFFSET(name) \
676 static ByteSize tlab_##name##_offset() { return byte_offset_of(Thread, _tlab) + ThreadLocalAllocBuffer::name##_offset(); }
677
678 TLAB_FIELD_OFFSET(start)
679 TLAB_FIELD_OFFSET(current_end)
680 TLAB_FIELD_OFFSET(top)
681 TLAB_FIELD_OFFSET(pf_top)
682 TLAB_FIELD_OFFSET(size) // desired_size
683 TLAB_FIELD_OFFSET(refill_waste_limit)
684 TLAB_FIELD_OFFSET(number_of_refills)
685 TLAB_FIELD_OFFSET(fast_refill_waste)
686 TLAB_FIELD_OFFSET(slow_allocations)
687
688 #undef TLAB_FIELD_OFFSET
689
690 static ByteSize allocated_bytes_offset() { return byte_offset_of(Thread, _allocated_bytes); }
691
692 public:
693 volatile intptr_t _Stalled;
694 volatile int _TypeTag;
695 ParkEvent * _ParkEvent; // for synchronized()
696 ParkEvent * _SleepEvent; // for Thread.sleep
697 ParkEvent * _MutexEvent; // for native internal Mutex/Monitor
698 ParkEvent * _MuxEvent; // for low-level muxAcquire-muxRelease
699 int NativeSyncRecursion; // diagnostic
|
659
660 public:
661 void entering_jvmti_env_iteration() { ++_jvmti_env_iteration_count; }
662 void leaving_jvmti_env_iteration() { --_jvmti_env_iteration_count; }
663 bool is_inside_jvmti_env_iteration() { return _jvmti_env_iteration_count > 0; }
664
665 // Code generation
666 static ByteSize exception_file_offset() { return byte_offset_of(Thread, _exception_file); }
667 static ByteSize exception_line_offset() { return byte_offset_of(Thread, _exception_line); }
668 static ByteSize active_handles_offset() { return byte_offset_of(Thread, _active_handles); }
669
670 static ByteSize stack_base_offset() { return byte_offset_of(Thread, _stack_base); }
671 static ByteSize stack_size_offset() { return byte_offset_of(Thread, _stack_size); }
672
673 static ByteSize polling_page_offset() { return byte_offset_of(Thread, _polling_page); }
674
675 #define TLAB_FIELD_OFFSET(name) \
676 static ByteSize tlab_##name##_offset() { return byte_offset_of(Thread, _tlab) + ThreadLocalAllocBuffer::name##_offset(); }
677
678 TLAB_FIELD_OFFSET(start)
679 TLAB_FIELD_OFFSET(fast_path_end)
680 TLAB_FIELD_OFFSET(top)
681 TLAB_FIELD_OFFSET(pf_top)
682 TLAB_FIELD_OFFSET(size) // desired_size
683 TLAB_FIELD_OFFSET(refill_waste_limit)
684 TLAB_FIELD_OFFSET(number_of_refills)
685 TLAB_FIELD_OFFSET(fast_refill_waste)
686 TLAB_FIELD_OFFSET(slow_allocations)
687
688 #undef TLAB_FIELD_OFFSET
689
690 static ByteSize allocated_bytes_offset() { return byte_offset_of(Thread, _allocated_bytes); }
691
692 public:
693 volatile intptr_t _Stalled;
694 volatile int _TypeTag;
695 ParkEvent * _ParkEvent; // for synchronized()
696 ParkEvent * _SleepEvent; // for Thread.sleep
697 ParkEvent * _MutexEvent; // for native internal Mutex/Monitor
698 ParkEvent * _MuxEvent; // for low-level muxAcquire-muxRelease
699 int NativeSyncRecursion; // diagnostic
|