544 MemoryService::track_memory_usage(); 545 546 gc_epilogue(complete); 547 548 if (must_restore_marks_for_biased_locking) { 549 BiasedLocking::restore_marks(); 550 } 551 } 552 553 print_heap_after_gc(); 554 555 #ifdef TRACESPINNING 556 ParallelTaskTerminator::print_termination_counts(); 557 #endif 558 } 559 560 HeapWord* GenCollectedHeap::satisfy_failed_allocation(size_t size, bool is_tlab) { 561 return collector_policy()->satisfy_failed_allocation(size, is_tlab); 562 } 563 564 void GenCollectedHeap::set_par_threads(uint t) { 565 assert(t == 0 || !UseSerialGC, "Cannot have parallel threads"); 566 CollectedHeap::set_par_threads(t); 567 } 568 569 #ifdef ASSERT 570 class AssertNonScavengableClosure: public OopClosure { 571 public: 572 virtual void do_oop(oop* p) { 573 assert(!GenCollectedHeap::heap()->is_in_partial_collection(*p), 574 "Referent should not be scavengable."); } 575 virtual void do_oop(narrowOop* p) { ShouldNotReachHere(); } 576 }; 577 static AssertNonScavengableClosure assert_is_non_scavengable_closure; 578 #endif 579 580 void GenCollectedHeap::process_roots(StrongRootsScope* scope, 581 ScanningOption so, 582 OopClosure* strong_roots, 583 OopClosure* weak_roots, 584 CLDClosure* strong_cld_closure, 585 CLDClosure* weak_cld_closure, 586 CodeBlobClosure* code_roots) { 587 // General roots. 588 assert(Threads::thread_claim_parity() != 0, "must have called prologue code"); | 544 MemoryService::track_memory_usage(); 545 546 gc_epilogue(complete); 547 548 if (must_restore_marks_for_biased_locking) { 549 BiasedLocking::restore_marks(); 550 } 551 } 552 553 print_heap_after_gc(); 554 555 #ifdef TRACESPINNING 556 ParallelTaskTerminator::print_termination_counts(); 557 #endif 558 } 559 560 HeapWord* GenCollectedHeap::satisfy_failed_allocation(size_t size, bool is_tlab) { 561 return collector_policy()->satisfy_failed_allocation(size, is_tlab); 562 } 563 564 #ifdef ASSERT 565 class AssertNonScavengableClosure: public OopClosure { 566 public: 567 virtual void do_oop(oop* p) { 568 assert(!GenCollectedHeap::heap()->is_in_partial_collection(*p), 569 "Referent should not be scavengable."); } 570 virtual void do_oop(narrowOop* p) { ShouldNotReachHere(); } 571 }; 572 static AssertNonScavengableClosure assert_is_non_scavengable_closure; 573 #endif 574 575 void GenCollectedHeap::process_roots(StrongRootsScope* scope, 576 ScanningOption so, 577 OopClosure* strong_roots, 578 OopClosure* weak_roots, 579 CLDClosure* strong_cld_closure, 580 CLDClosure* weak_cld_closure, 581 CodeBlobClosure* code_roots) { 582 // General roots. 583 assert(Threads::thread_claim_parity() != 0, "must have called prologue code"); |