< prev index next >

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

Print this page
rev 13387 : [mq]: parallel_sp_cleaning.patch


2547 }
2548 
2549 void ShenandoahHeap::defer_recycle(ShenandoahHeapRegion* r) {
2550   assert_heaplock_owned_by_current_thread();
2551   _recycled_regions[_recycled_region_count++] = r->region_number();
2552 }
2553 
2554 void ShenandoahHeap::finish_deferred_recycle() {
2555   assert_heaplock_owned_by_current_thread();
2556   if (UseShenandoahMatrix) {
2557     for (size_t i = 0; i < _recycled_region_count; i++) {
2558       regions()->get(_recycled_regions[i])->recycle_no_matrix();
2559     }
2560     connection_matrix()->clear_batched(_recycled_regions, _recycled_region_count);
2561   } else {
2562     for (size_t i = 0; i < _recycled_region_count; i++) {
2563       regions()->get(_recycled_regions[i])->recycle();
2564     }
2565   }
2566 }
2567 
2568 void ShenandoahHeap::deflate_idle_monitors_all_threads() {
2569   parallel_deflate_idle_monitors(workers());
2570 }


2547 }
2548 
2549 void ShenandoahHeap::defer_recycle(ShenandoahHeapRegion* r) {
2550   assert_heaplock_owned_by_current_thread();
2551   _recycled_regions[_recycled_region_count++] = r->region_number();
2552 }
2553 
2554 void ShenandoahHeap::finish_deferred_recycle() {
2555   assert_heaplock_owned_by_current_thread();
2556   if (UseShenandoahMatrix) {
2557     for (size_t i = 0; i < _recycled_region_count; i++) {
2558       regions()->get(_recycled_regions[i])->recycle_no_matrix();
2559     }
2560     connection_matrix()->clear_batched(_recycled_regions, _recycled_region_count);
2561   } else {
2562     for (size_t i = 0; i < _recycled_region_count; i++) {
2563       regions()->get(_recycled_regions[i])->recycle();
2564     }
2565   }
2566 }




< prev index next >