1046 // and during exception propagation, pop the top 1047 // _frames_to_pop_failed_realloc frames, the ones that reference 1048 // failed reallocations. 1049 int _frames_to_pop_failed_realloc; 1050 1051 #ifndef PRODUCT 1052 int _jmp_ring_index; 1053 struct { 1054 // We use intptr_t instead of address so debugger doesn't try and display strings 1055 intptr_t _target; 1056 intptr_t _instruction; 1057 const char* _file; 1058 int _line; 1059 } _jmp_ring[jump_ring_buffer_size]; 1060 #endif // PRODUCT 1061 1062 #if INCLUDE_ALL_GCS 1063 // Support for G1 barriers 1064 1065 SATBMarkQueue _satb_mark_queue; // Thread-local log for SATB barrier. 1066 // Set of all such queues. 1067 static SATBMarkQueueSet _satb_mark_queue_set; 1068 1069 DirtyCardQueue _dirty_card_queue; // Thread-local log for dirty cards. 1070 // Set of all such queues. 1071 static DirtyCardQueueSet _dirty_card_queue_set; 1072 #endif // INCLUDE_ALL_GCS 1073 1074 friend class VMThread; 1075 friend class ThreadWaitTransition; 1076 friend class VM_Exit; 1077 1078 void initialize(); // Initialized the instance variables 1079 1080 public: 1081 // Constructor 1082 JavaThread(bool is_attaching_via_jni = false); // for main thread and JNI attached threads 1083 JavaThread(ThreadFunction entry_point, size_t stack_size = 0); 1084 ~JavaThread(); 1085 1086 #ifdef ASSERT 1087 // verify this JavaThread hasn't be published in the Threads::list yet 1088 void verify_not_published(); 1089 #endif 1090 1091 //JNI functiontable getter/setter for JVMTI jni function table interception API. 1931 public: 1932 ThreadStatistics* get_thread_stat() const { return _thread_stat; } 1933 1934 // Return a blocker object for which this thread is blocked parking. 1935 oop current_park_blocker(); 1936 1937 private: 1938 static size_t _stack_size_at_create; 1939 1940 public: 1941 static inline size_t stack_size_at_create(void) { 1942 return _stack_size_at_create; 1943 } 1944 static inline void set_stack_size_at_create(size_t value) { 1945 _stack_size_at_create = value; 1946 } 1947 1948 #if INCLUDE_ALL_GCS 1949 // SATB marking queue support 1950 SATBMarkQueue& satb_mark_queue() { return _satb_mark_queue; } 1951 static SATBMarkQueueSet& satb_mark_queue_set() { 1952 return _satb_mark_queue_set; 1953 } 1954 1955 // Dirty card queue support 1956 DirtyCardQueue& dirty_card_queue() { return _dirty_card_queue; } 1957 static DirtyCardQueueSet& dirty_card_queue_set() { 1958 return _dirty_card_queue_set; 1959 } 1960 #endif // INCLUDE_ALL_GCS 1961 1962 // Machine dependent stuff 1963 #include OS_CPU_HEADER(thread) 1964 1965 public: 1966 void set_blocked_on_compilation(bool value) { 1967 _blocked_on_compilation = value; 1968 } 1969 1970 bool blocked_on_compilation() { 1971 return _blocked_on_compilation; 1972 } 1973 protected: 1974 bool _blocked_on_compilation; 1975 1976 1977 // JSR166 per-thread parker 1978 private: 1979 Parker* _parker; | 1046 // and during exception propagation, pop the top 1047 // _frames_to_pop_failed_realloc frames, the ones that reference 1048 // failed reallocations. 1049 int _frames_to_pop_failed_realloc; 1050 1051 #ifndef PRODUCT 1052 int _jmp_ring_index; 1053 struct { 1054 // We use intptr_t instead of address so debugger doesn't try and display strings 1055 intptr_t _target; 1056 intptr_t _instruction; 1057 const char* _file; 1058 int _line; 1059 } _jmp_ring[jump_ring_buffer_size]; 1060 #endif // PRODUCT 1061 1062 #if INCLUDE_ALL_GCS 1063 // Support for G1 barriers 1064 1065 SATBMarkQueue _satb_mark_queue; // Thread-local log for SATB barrier. 1066 1067 DirtyCardQueue _dirty_card_queue; // Thread-local log for dirty cards. 1068 #endif // INCLUDE_ALL_GCS 1069 1070 friend class VMThread; 1071 friend class ThreadWaitTransition; 1072 friend class VM_Exit; 1073 1074 void initialize(); // Initialized the instance variables 1075 1076 public: 1077 // Constructor 1078 JavaThread(bool is_attaching_via_jni = false); // for main thread and JNI attached threads 1079 JavaThread(ThreadFunction entry_point, size_t stack_size = 0); 1080 ~JavaThread(); 1081 1082 #ifdef ASSERT 1083 // verify this JavaThread hasn't be published in the Threads::list yet 1084 void verify_not_published(); 1085 #endif 1086 1087 //JNI functiontable getter/setter for JVMTI jni function table interception API. 1927 public: 1928 ThreadStatistics* get_thread_stat() const { return _thread_stat; } 1929 1930 // Return a blocker object for which this thread is blocked parking. 1931 oop current_park_blocker(); 1932 1933 private: 1934 static size_t _stack_size_at_create; 1935 1936 public: 1937 static inline size_t stack_size_at_create(void) { 1938 return _stack_size_at_create; 1939 } 1940 static inline void set_stack_size_at_create(size_t value) { 1941 _stack_size_at_create = value; 1942 } 1943 1944 #if INCLUDE_ALL_GCS 1945 // SATB marking queue support 1946 SATBMarkQueue& satb_mark_queue() { return _satb_mark_queue; } 1947 1948 // Dirty card queue support 1949 DirtyCardQueue& dirty_card_queue() { return _dirty_card_queue; } 1950 #endif // INCLUDE_ALL_GCS 1951 1952 // Machine dependent stuff 1953 #include OS_CPU_HEADER(thread) 1954 1955 public: 1956 void set_blocked_on_compilation(bool value) { 1957 _blocked_on_compilation = value; 1958 } 1959 1960 bool blocked_on_compilation() { 1961 return _blocked_on_compilation; 1962 } 1963 protected: 1964 bool _blocked_on_compilation; 1965 1966 1967 // JSR166 per-thread parker 1968 private: 1969 Parker* _parker; |