org.mmtk.plan.concurrent.marksweep
Class CMSCollector

java.lang.Object
  extended by org.mmtk.plan.CollectorContext
      extended by org.mmtk.plan.ParallelCollector
          extended by org.mmtk.plan.SimpleCollector
              extended by org.mmtk.plan.concurrent.ConcurrentCollector
                  extended by org.mmtk.plan.concurrent.marksweep.CMSCollector
All Implemented Interfaces:
Constants

public class CMSCollector
extends ConcurrentCollector

This class implements per-collector thread behavior and state for the CMS plan, which implements a full-heap concurrent mark-sweep collector.


Field Summary
protected  CMSTraceLocal trace
          Instance fields
 
Fields inherited from class org.mmtk.plan.SimpleCollector
sanityLocal
 
Fields inherited from class org.mmtk.plan.ParallelCollector
group
 
Fields inherited from class org.mmtk.plan.CollectorContext
log
 
Fields inherited from interface org.mmtk.utility.Constants
ALIGNMENT_VALUE, ARRAY_ELEMENT, BITS_IN_ADDRESS, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_INT, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_INT, BYTES_IN_KBYTE, BYTES_IN_MBYTE, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, CARD_MASK, CARD_META_PAGES_PER_REGION, INSTANCE_FIELD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_INT, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_ADDRESS_SPACE, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_INT, LOG_BYTES_IN_KBYTE, LOG_BYTES_IN_MBYTE, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD, LOG_CARD_BYTES, LOG_CARD_GRAIN, LOG_CARD_META_BYTES, LOG_CARD_META_PAGES, LOG_CARD_META_SIZE, LOG_CARD_UNITS, LOG_MIN_ALIGNMENT, MAX_ALIGNMENT, MAX_BYTES_PADDING, MAX_INT, MIN_ALIGNMENT, MIN_INT, SUPPORT_CARD_SCANNING
 
Constructor Summary
CMSCollector()
          Constructor
 
Method Summary
 void collectionPhase(short phaseId, boolean primary)
          Perform a (local, i.e.per-collector) collection phase.
protected  boolean concurrentTraceComplete()
          Has all work been completed?
 TraceLocal getCurrentTrace()
           
private static CMS global()
           
 
Methods inherited from class org.mmtk.plan.concurrent.ConcurrentCollector
collect, concurrentCollect, concurrentCollectionPhase, run
 
Methods inherited from class org.mmtk.plan.ParallelCollector
parallelWorkerCount, parallelWorkerOrdinal, park, rendezvous
 
Methods inherited from class org.mmtk.plan.CollectorContext
allocCopy, copyCheckAllocator, getId, getLog, initCollector, postCopy
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

trace

protected final CMSTraceLocal trace
Instance fields

Constructor Detail

CMSCollector

public CMSCollector()
Constructor

Method Detail

collectionPhase

public void collectionPhase(short phaseId,
                            boolean primary)
Perform a (local, i.e.per-collector) collection phase.

Overrides:
collectionPhase in class ConcurrentCollector
Parameters:
phaseId - The unique phase identifier
primary - Should this thread be used to execute any single-threaded local operations?

concurrentTraceComplete

protected boolean concurrentTraceComplete()
Description copied from class: ConcurrentCollector
Has all work been completed?

Specified by:
concurrentTraceComplete in class ConcurrentCollector

global

private static CMS global()
Returns:
The active global plan as an MS instance.

getCurrentTrace

public final TraceLocal getCurrentTrace()
Overrides:
getCurrentTrace in class ParallelCollector
Returns:
The current trace instance.