comparison src/share/vm/runtime/thread.hpp @ 17876:9c3dc501b5eb

8028498: runtime/SharedArchiveFile/CdsDifferentObjectAlignment.java asserts in RT_Baseline Summary: Preventing GCs to occur before VM is completely initialized. This was previously partly done by one part of the GC locker which not was removed. Reviewed-by: coleenp, pliden
author sjohanss
date Thu, 13 Feb 2014 10:05:03 +0100
parents 8847586c9037
children 78bbf4d43a14
comparison
equal deleted inserted replaced
17875:cb1b723cbca8 17876:9c3dc501b5eb
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; }