Print this page
rev 2691 : [mq]: g1-reference-processing

Split Close
Expand all
Collapse all
          --- old/src/share/vm/memory/genCollectedHeap.cpp
          +++ new/src/share/vm/memory/genCollectedHeap.cpp
↓ open down ↓ 591 lines elided ↑ open up ↑
 592  592            // We want to discover references, but not process them yet.
 593  593            // This mode is disabled in process_discovered_references if the
 594  594            // generation does some collection work, or in
 595  595            // enqueue_discovered_references if the generation returns
 596  596            // without doing any work.
 597  597            ReferenceProcessor* rp = _gens[i]->ref_processor();
 598  598            // If the discovery of ("weak") refs in this generation is
 599  599            // atomic wrt other collectors in this configuration, we
 600  600            // are guaranteed to have empty discovered ref lists.
 601  601            if (rp->discovery_is_atomic()) {
 602      -            rp->verify_no_references_recorded();
 603      -            rp->enable_discovery();
      602 +            rp->enable_discovery(true /*verify_disabled*/, true /*verify_no_refs*/);
 604  603              rp->setup_policy(do_clear_all_soft_refs);
 605  604            } else {
 606  605              // collect() below will enable discovery as appropriate
 607  606            }
 608  607            _gens[i]->collect(full, do_clear_all_soft_refs, size, is_tlab);
 609  608            if (!rp->enqueuing_is_done()) {
 610  609              rp->enqueue_discovered_references();
 611  610            } else {
 612  611              rp->set_enqueuing_is_done(false);
 613  612            }
↓ open down ↓ 875 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX