Mercurial > hg > graal-compiler
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, |