Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/concurrentMark.hpp @ 3979:4dfb2df418f2
6484982: G1: process references during evacuation pauses
Summary: G1 now uses two reference processors - one is used by concurrent marking and the other is used by STW GCs (both full and incremental evacuation pauses). In an evacuation pause, the reference processor is embedded into the closures used to scan objects. Doing so causes causes reference objects to be 'discovered' by the reference processor. At the end of the evacuation pause, these discovered reference objects are processed - preserving (and copying) referent objects (and their reachable graphs) as appropriate.
Reviewed-by: ysr, jwilhelm, brutisso, stefank, tonyp
author | johnc |
---|---|
date | Thu, 22 Sep 2011 10:57:37 -0700 |
parents | ff53346271fe |
children | bca17e38de00 |
comparison
equal
deleted
inserted
replaced
3978:f0ecbe78fc7b | 3979:4dfb2df418f2 |
---|---|
364 friend class CMGlobalObjectClosure; | 364 friend class CMGlobalObjectClosure; |
365 friend class CMRemarkTask; | 365 friend class CMRemarkTask; |
366 friend class CMConcurrentMarkingTask; | 366 friend class CMConcurrentMarkingTask; |
367 friend class G1ParNoteEndTask; | 367 friend class G1ParNoteEndTask; |
368 friend class CalcLiveObjectsClosure; | 368 friend class CalcLiveObjectsClosure; |
369 friend class G1RefProcTaskProxy; | 369 friend class G1CMRefProcTaskProxy; |
370 friend class G1RefProcTaskExecutor; | 370 friend class G1CMRefProcTaskExecutor; |
371 friend class G1CMParKeepAliveAndDrainClosure; | 371 friend class G1CMParKeepAliveAndDrainClosure; |
372 friend class G1CMParDrainMarkingStackClosure; | 372 friend class G1CMParDrainMarkingStackClosure; |
373 | 373 |
374 protected: | 374 protected: |
375 ConcurrentMarkThread* _cmThread; // the thread doing the work | 375 ConcurrentMarkThread* _cmThread; // the thread doing the work |