hotspot/src/share/vm/runtime/thread.hpp
changeset 23540 06f7d6e1f654
parent 22905 4b1549d69106
child 23855 c4574075402c
equal deleted inserted replaced
23539:6382fd0ea303 23540:06f7d6e1f654
   247   debug_only (int _allow_allocation_count;)     // If 0, the thread is allowed to allocate oops.
   247   debug_only (int _allow_allocation_count;)     // If 0, the thread is allowed to allocate oops.
   248 
   248 
   249   // Used by SkipGCALot class.
   249   // Used by SkipGCALot class.
   250   NOT_PRODUCT(bool _skip_gcalot;)               // Should we elide gc-a-lot?
   250   NOT_PRODUCT(bool _skip_gcalot;)               // Should we elide gc-a-lot?
   251 
   251 
   252   // Record when GC is locked out via the GC_locker mechanism
       
   253   CHECK_UNHANDLED_OOPS_ONLY(int _gc_locked_out_count;)
       
   254 
       
   255   friend class No_Alloc_Verifier;
   252   friend class No_Alloc_Verifier;
   256   friend class No_Safepoint_Verifier;
   253   friend class No_Safepoint_Verifier;
   257   friend class Pause_No_Safepoint_Verifier;
   254   friend class Pause_No_Safepoint_Verifier;
   258   friend class ThreadLocalStorage;
   255   friend class ThreadLocalStorage;
   259   friend class GC_locker;
   256   friend class GC_locker;
   395   }
   392   }
   396   // Clear oops at safepoint so crashes point to unhandled oop violator
   393   // Clear oops at safepoint so crashes point to unhandled oop violator
   397   void clear_unhandled_oops() {
   394   void clear_unhandled_oops() {
   398     if (CheckUnhandledOops) unhandled_oops()->clear_unhandled_oops();
   395     if (CheckUnhandledOops) unhandled_oops()->clear_unhandled_oops();
   399   }
   396   }
   400   bool is_gc_locked_out() { return _gc_locked_out_count > 0; }
       
   401 #endif // CHECK_UNHANDLED_OOPS
   397 #endif // CHECK_UNHANDLED_OOPS
   402 
   398 
   403 #ifndef PRODUCT
   399 #ifndef PRODUCT
   404   bool skip_gcalot()           { return _skip_gcalot; }
   400   bool skip_gcalot()           { return _skip_gcalot; }
   405   void set_skip_gcalot(bool v) { _skip_gcalot = v;    }
   401   void set_skip_gcalot(bool v) { _skip_gcalot = v;    }