< prev index next >

src/share/vm/runtime/thread.hpp

Print this page




 238 
 239   // Point to the last handle mark
 240   HandleMark* _last_handle_mark;
 241 
 242   // The parity of the last strong_roots iteration in which this thread was
 243   // claimed as a task.
 244   jint _oops_do_parity;
 245 
 246  public:
 247   void set_last_handle_mark(HandleMark* mark)   { _last_handle_mark = mark; }
 248   HandleMark* last_handle_mark() const          { return _last_handle_mark; }
 249  private:
 250 
 251   // debug support for checking if code does allow safepoints or not
 252   // GC points in the VM can happen because of allocation, invoking a VM operation, or blocking on
 253   // mutex, or blocking on an object synchronizer (Java locking).
 254   // If !allow_safepoint(), then an assertion failure will happen in any of the above cases
 255   // If !allow_allocation(), then an assertion failure will happen during allocation
 256   // (Hence, !allow_safepoint() => !allow_allocation()).
 257   //
 258   // The two classes No_Safepoint_Verifier and No_Allocation_Verifier are used to set these counters.
 259   //
 260   NOT_PRODUCT(int _allow_safepoint_count;)      // If 0, thread allow a safepoint to happen
 261   debug_only(int _allow_allocation_count;)     // If 0, the thread is allowed to allocate oops.
 262 
 263   // Used by SkipGCALot class.
 264   NOT_PRODUCT(bool _skip_gcalot;)               // Should we elide gc-a-lot?
 265 
 266   friend class No_Alloc_Verifier;
 267   friend class No_Safepoint_Verifier;
 268   friend class Pause_No_Safepoint_Verifier;
 269   friend class GC_locker;
 270 
 271   ThreadLocalAllocBuffer _tlab;                 // Thread-local eden
 272   jlong _allocated_bytes;                       // Cumulative number of bytes allocated on
 273                                                 // the Java heap
 274 
 275   mutable TRACE_DATA _trace_data;               // Thread-local data for tracing
 276 
 277   ThreadExt _ext;
 278 
 279   int   _vm_operation_started_count;            // VM_Operation support
 280   int   _vm_operation_completed_count;          // VM_Operation support
 281 
 282   ObjectMonitor* _current_pending_monitor;      // ObjectMonitor this thread
 283                                                 // is waiting to lock
 284   bool _current_pending_monitor_is_from_java;   // locking is from Java code
 285 
 286   // ObjectMonitor on which this thread called Object.wait()
 287   ObjectMonitor* _current_waiting_monitor;
 288 
 289   // Private thread-local objectmonitor list - a simple cache organized as a SLL.




 238 
 239   // Point to the last handle mark
 240   HandleMark* _last_handle_mark;
 241 
 242   // The parity of the last strong_roots iteration in which this thread was
 243   // claimed as a task.
 244   jint _oops_do_parity;
 245 
 246  public:
 247   void set_last_handle_mark(HandleMark* mark)   { _last_handle_mark = mark; }
 248   HandleMark* last_handle_mark() const          { return _last_handle_mark; }
 249  private:
 250 
 251   // debug support for checking if code does allow safepoints or not
 252   // GC points in the VM can happen because of allocation, invoking a VM operation, or blocking on
 253   // mutex, or blocking on an object synchronizer (Java locking).
 254   // If !allow_safepoint(), then an assertion failure will happen in any of the above cases
 255   // If !allow_allocation(), then an assertion failure will happen during allocation
 256   // (Hence, !allow_safepoint() => !allow_allocation()).
 257   //
 258   // The two classes NoSafepointVerifier and No_Allocation_Verifier are used to set these counters.
 259   //
 260   NOT_PRODUCT(int _allow_safepoint_count;)      // If 0, thread allow a safepoint to happen
 261   debug_only(int _allow_allocation_count;)     // If 0, the thread is allowed to allocate oops.
 262 
 263   // Used by SkipGCALot class.
 264   NOT_PRODUCT(bool _skip_gcalot;)               // Should we elide gc-a-lot?
 265 
 266   friend class NoAllocVerifier;
 267   friend class NoSafepointVerifier;
 268   friend class PauseNoSafepointVerifier;
 269   friend class GCLocker;
 270 
 271   ThreadLocalAllocBuffer _tlab;                 // Thread-local eden
 272   jlong _allocated_bytes;                       // Cumulative number of bytes allocated on
 273                                                 // the Java heap
 274 
 275   mutable TRACE_DATA _trace_data;               // Thread-local data for tracing
 276 
 277   ThreadExt _ext;
 278 
 279   int   _vm_operation_started_count;            // VM_Operation support
 280   int   _vm_operation_completed_count;          // VM_Operation support
 281 
 282   ObjectMonitor* _current_pending_monitor;      // ObjectMonitor this thread
 283                                                 // is waiting to lock
 284   bool _current_pending_monitor_is_from_java;   // locking is from Java code
 285 
 286   // ObjectMonitor on which this thread called Object.wait()
 287   ObjectMonitor* _current_waiting_monitor;
 288 
 289   // Private thread-local objectmonitor list - a simple cache organized as a SLL.


< prev index next >