Top


定義場所(file name)

hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp

名前(function name)

void G1ParEvacuateFollowersClosure::do_void() {

本体部(body)

  {- -------------------------------------------
  (1) 
      ---------------------------------------- -}

      StarTask stolen_task;
      G1ParScanThreadState* const pss = par_scan_state();
      pss->trim_queue();

  {- -------------------------------------------
  (1) 
      ---------------------------------------- -}

      do {
        while (queues()->steal(pss->queue_num(), pss->hash_seed(), stolen_task)) {
          assert(pss->verify_task(stolen_task), "sanity");
          if (stolen_task.is_narrow()) {
            pss->deal_with_reference((narrowOop*) stolen_task);
          } else {
            pss->deal_with_reference((oop*) stolen_task);
          }

          // We've just processed a reference and we might have made
          // available new entries on the queues. So we have to make sure
          // we drain the queues as necessary.
          pss->trim_queue();
        }
      } while (!offer_termination());

      pss->retire_alloc_buffers();
    }

This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.