< prev index next >

src/share/vm/gc/shenandoah/shenandoahConcurrentThread.cpp

Print this page
rev 13068 : [mq]: partial.patch

*** 51,60 **** --- 51,62 ---- while (!should_terminate()) { if (in_graceful_shutdown()) { break; } else if (is_full_gc()) { service_fullgc_cycle(); + } else if (heap->shenandoahPolicy()->should_start_partial_gc()) { + service_partial_cycle(); } else if (heap->shenandoahPolicy()->should_start_concurrent_mark(heap->used(), heap->capacity())) { service_normal_cycle(); if (heap->is_evacuation_in_progress()) { heap->set_evacuation_in_progress_concurrently(false); }
*** 71,80 **** --- 73,88 ---- while (!should_terminate()) { Thread::current()->_ParkEvent->park(10); } } + void ShenandoahConcurrentThread::service_partial_cycle() { + GCIdMark gc_id_mark; + VM_ShenandoahPartialGC partial_gc; + VMThread::execute(&partial_gc); + } + void ShenandoahConcurrentThread::service_normal_cycle() { if (check_cancellation()) return; ShenandoahHeap* heap = ShenandoahHeap::heap();
< prev index next >