--- old/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp 2015-03-31 14:52:48.907189455 +0200 +++ new/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp 2015-03-31 14:52:48.791189460 +0200 @@ -1106,6 +1106,17 @@ // region has no marks. Return true if all is well, false if errors // are detected. bool verify_bitmaps(const char* caller, HeapRegion* hr); + + // True if the heap_lock is held by the a non-gc thread invoking a gc + // operation. + bool _thread_holds_heap_lock_for_gc; + // Returns true if the calling thread holds the heap lock, + // or the calling thread is a par gc thread and the heap_lock is held + // by the vm thread doing a gc operation. + bool heap_lock_held_for_gc(); + + void set_heap_lock_held_for_gc(bool value) { _thread_holds_heap_lock_for_gc = value; } + #endif // PRODUCT // If G1VerifyBitmaps is set, verify that the marking bitmaps for