--- a/hotspot/src/share/vm/memory/genCollectedHeap.cpp Mon May 03 17:23:58 2010 -0400
+++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp Mon May 03 20:19:05 2010 -0700
@@ -410,9 +410,9 @@
}
bool GenCollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause) {
- return (cause == GCCause::_java_lang_system_gc ||
- cause == GCCause::_gc_locker) &&
- UseConcMarkSweepGC && ExplicitGCInvokesConcurrent;
+ return UseConcMarkSweepGC &&
+ ((cause == GCCause::_gc_locker && GCLockerInvokesConcurrent) ||
+ (cause == GCCause::_java_lang_system_gc && ExplicitGCInvokesConcurrent));
}
void GenCollectedHeap::do_collection(bool full,