< prev index next >

src/hotspot/share/runtime/thread.hpp

Print this page




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;


< prev index next >