org.mmtk.plan.concurrent
Class ConcurrentCollector

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
All Implemented Interfaces:
Constants
Direct Known Subclasses:
CMSCollector

public abstract class ConcurrentCollector
extends SimpleCollector

This class implements per-collector thread behavior and state for a concurrent collector.


Field Summary
private static boolean continueCollecting
           
 
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
ConcurrentCollector()
           
 
Method Summary
 void collect()
          Perform a single garbage collection
 void collectionPhase(short phaseId, boolean primary)
          Perform a (local, i.e.per-collector) collection phase.
 void concurrentCollect()
          Perform some concurrent garbage collection
 void concurrentCollectionPhase(short phaseId)
          Perform some concurrent collection work.
protected abstract  boolean concurrentTraceComplete()
          Has all work been completed?
private static Concurrent global()
           
 void run()
          Entry point for the collector context.
 
Methods inherited from class org.mmtk.plan.ParallelCollector
getCurrentTrace, 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

continueCollecting

private static volatile boolean continueCollecting
Constructor Detail

ConcurrentCollector

public ConcurrentCollector()
Method Detail

run

public void run()
Entry point for the collector context.

Overrides:
run in class ParallelCollector

concurrentCollect

public final void concurrentCollect()
Perform some concurrent garbage collection


collect

public void collect()
Description copied from class: ParallelCollector
Perform a single garbage collection

Overrides:
collect in class ParallelCollector

collectionPhase

public void collectionPhase(short phaseId,
                            boolean primary)
Description copied from class: SimpleCollector
Perform a (local, i.e.per-collector) collection phase.

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

concurrentCollectionPhase

public void concurrentCollectionPhase(short phaseId)
Perform some concurrent collection work.

Parameters:
phaseId - The unique phase identifier

concurrentTraceComplete

protected abstract boolean concurrentTraceComplete()
Has all work been completed?


global

private static Concurrent global()
Returns:
The active global plan as a Concurrent instance.