< prev index next >

src/hotspot/share/runtime/thread.hpp

Print this page




 227 
 228   void clear_suspendible_thread() {
 229     _suspendible_thread = false;
 230   }
 231 
 232   bool is_suspendible_thread() { return _suspendible_thread; }
 233 #endif
 234 
 235  private:
 236   // Active_handles points to a block of handles
 237   JNIHandleBlock* _active_handles;
 238 
 239   // One-element thread local free list
 240   JNIHandleBlock* _free_handle_block;
 241 
 242   // Point to the last handle mark
 243   HandleMark* _last_handle_mark;
 244 
 245   // The parity of the last strong_roots iteration in which this thread was
 246   // claimed as a task.
 247   jint _oops_do_parity;
 248 
 249  public:
 250   void set_last_handle_mark(HandleMark* mark)   { _last_handle_mark = mark; }
 251   HandleMark* last_handle_mark() const          { return _last_handle_mark; }
 252  private:
 253 
 254   // debug support for checking if code does allow safepoints or not
 255   // GC points in the VM can happen because of allocation, invoking a VM operation, or blocking on
 256   // mutex, or blocking on an object synchronizer (Java locking).
 257   // If !allow_safepoint(), then an assertion failure will happen in any of the above cases
 258   // If !allow_allocation(), then an assertion failure will happen during allocation
 259   // (Hence, !allow_safepoint() => !allow_allocation()).
 260   //
 261   // The two classes NoSafepointVerifier and No_Allocation_Verifier are used to set these counters.
 262   //
 263   NOT_PRODUCT(int _allow_safepoint_count;)      // If 0, thread allow a safepoint to happen
 264   debug_only(int _allow_allocation_count;)     // If 0, the thread is allowed to allocate oops.
 265 
 266   // Used by SkipGCALot class.
 267   NOT_PRODUCT(bool _skip_gcalot;)               // Should we elide gc-a-lot?




 227 
 228   void clear_suspendible_thread() {
 229     _suspendible_thread = false;
 230   }
 231 
 232   bool is_suspendible_thread() { return _suspendible_thread; }
 233 #endif
 234 
 235  private:
 236   // Active_handles points to a block of handles
 237   JNIHandleBlock* _active_handles;
 238 
 239   // One-element thread local free list
 240   JNIHandleBlock* _free_handle_block;
 241 
 242   // Point to the last handle mark
 243   HandleMark* _last_handle_mark;
 244 
 245   // The parity of the last strong_roots iteration in which this thread was
 246   // claimed as a task.
 247   int _oops_do_parity;
 248 
 249  public:
 250   void set_last_handle_mark(HandleMark* mark)   { _last_handle_mark = mark; }
 251   HandleMark* last_handle_mark() const          { return _last_handle_mark; }
 252  private:
 253 
 254   // debug support for checking if code does allow safepoints or not
 255   // GC points in the VM can happen because of allocation, invoking a VM operation, or blocking on
 256   // mutex, or blocking on an object synchronizer (Java locking).
 257   // If !allow_safepoint(), then an assertion failure will happen in any of the above cases
 258   // If !allow_allocation(), then an assertion failure will happen during allocation
 259   // (Hence, !allow_safepoint() => !allow_allocation()).
 260   //
 261   // The two classes NoSafepointVerifier and No_Allocation_Verifier are used to set these counters.
 262   //
 263   NOT_PRODUCT(int _allow_safepoint_count;)      // If 0, thread allow a safepoint to happen
 264   debug_only(int _allow_allocation_count;)     // If 0, the thread is allowed to allocate oops.
 265 
 266   // Used by SkipGCALot class.
 267   NOT_PRODUCT(bool _skip_gcalot;)               // Should we elide gc-a-lot?


< prev index next >