comparison src/share/vm/memory/genCollectedHeap.cpp @ 1520:bb843ebc7c55

6919638: CMS: ExplicitGCInvokesConcurrent misinteracts with gc locker Summary: GC-locker induced concurrent full gc should be asynchronous; policy now controlled by a separate flag, which defaults to false. Reviewed-by: jmasa
author ysr
date Mon, 03 May 2010 20:19:05 -0700
parents 0bfd3fb24150
children c18cbe5936b8
comparison
equal deleted inserted replaced
1519:7145628c2fa2 1520:bb843ebc7c55
408 bool GenCollectedHeap::must_clear_all_soft_refs() { 408 bool GenCollectedHeap::must_clear_all_soft_refs() {
409 return _gc_cause == GCCause::_last_ditch_collection; 409 return _gc_cause == GCCause::_last_ditch_collection;
410 } 410 }
411 411
412 bool GenCollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause) { 412 bool GenCollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause) {
413 return (cause == GCCause::_java_lang_system_gc || 413 return UseConcMarkSweepGC &&
414 cause == GCCause::_gc_locker) && 414 ((cause == GCCause::_gc_locker && GCLockerInvokesConcurrent) ||
415 UseConcMarkSweepGC && ExplicitGCInvokesConcurrent; 415 (cause == GCCause::_java_lang_system_gc && ExplicitGCInvokesConcurrent));
416 } 416 }
417 417
418 void GenCollectedHeap::do_collection(bool full, 418 void GenCollectedHeap::do_collection(bool full,
419 bool clear_all_soft_refs, 419 bool clear_all_soft_refs,
420 size_t size, 420 size_t size,