Top


定義場所(file name)

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

名前(function name)

  bool do_card_ptr(jbyte* card_ptr, int worker_i) {

本体部(body)

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

        // The only time we care about recording cards that
        // contain references that point into the collection set
        // is during RSet updating within an evacuation pause.
        // In this case worker_i should be the id of a GC worker thread.
        assert(SafepointSynchronize::is_at_safepoint(), "not during an evacuation pause");
        assert(worker_i < (int) (ParallelGCThreads == 0 ? 1 : ParallelGCThreads), "should be a GC worker");

  {- -------------------------------------------
  (1) G1RemSet::concurrentRefineOneCard() を呼び出して, #TODO
      ---------------------------------------- -}

        if (_g1rs->concurrentRefineOneCard(card_ptr, worker_i, true)) {
          // 'card_ptr' contains references that point into the collection
          // set. We need to record the card in the DCQS
          // (G1CollectedHeap::into_cset_dirty_card_queue_set())
          // that's used for that purpose.
          //
          // Enqueue the card
          _into_cset_dcq->enqueue(card_ptr);
        }

  {- -------------------------------------------
  (1) リターン
      ---------------------------------------- -}

        return true;
      }

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