equal
deleted
inserted
replaced
1654 // the number of threads involved during discovery could differ from |
1654 // the number of threads involved during discovery could differ from |
1655 // the number of active workers. This is OK as long as the discovered |
1655 // the number of active workers. This is OK as long as the discovered |
1656 // Reference lists are balanced (see balance_all_queues() and balance_queues()). |
1656 // Reference lists are balanced (see balance_all_queues() and balance_queues()). |
1657 rp->set_active_mt_degree(active_workers); |
1657 rp->set_active_mt_degree(active_workers); |
1658 |
1658 |
1659 ReferenceProcessorPhaseTimes pt(_gc_timer_cm, rp->num_q()); |
1659 ReferenceProcessorPhaseTimes pt(_gc_timer_cm, rp->num_queues()); |
1660 |
1660 |
1661 // Process the weak references. |
1661 // Process the weak references. |
1662 const ReferenceProcessorStats& stats = |
1662 const ReferenceProcessorStats& stats = |
1663 rp->process_discovered_references(&g1_is_alive, |
1663 rp->process_discovered_references(&g1_is_alive, |
1664 &g1_keep_alive, |
1664 &g1_keep_alive, |
1673 // global marking stack. |
1673 // global marking stack. |
1674 |
1674 |
1675 assert(has_overflown() || _global_mark_stack.is_empty(), |
1675 assert(has_overflown() || _global_mark_stack.is_empty(), |
1676 "Mark stack should be empty (unless it has overflown)"); |
1676 "Mark stack should be empty (unless it has overflown)"); |
1677 |
1677 |
1678 assert(rp->num_q() == active_workers, "why not"); |
1678 assert(rp->num_queues() == active_workers, "why not"); |
1679 |
1679 |
1680 rp->enqueue_discovered_references(executor, &pt); |
1680 rp->enqueue_discovered_references(executor, &pt); |
1681 |
1681 |
1682 rp->verify_no_references_recorded(); |
1682 rp->verify_no_references_recorded(); |
1683 |
1683 |