org.mmtk.plan.stickyms
Class StickyMSNurseryTraceLocal
java.lang.Object
org.mmtk.plan.TransitiveClosure
org.mmtk.plan.TraceLocal
org.mmtk.plan.stickyms.StickyMSNurseryTraceLocal
- All Implemented Interfaces:
- Constants
public final class StickyMSNurseryTraceLocal
- extends TraceLocal
This class implements the thread-local functionality for a transitive
closure over a mark-sweep space.
| 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 |
| Methods inherited from class org.mmtk.plan.TraceLocal |
completeTrace, flush, getForwardedFinalizable, getForwardedReference, getForwardedReferenceType, getForwardedReferent, incrementalTrace, isReachable, isReferentLive, logMessage, precopyObject, prepare, processEdge, processInteriorEdge, processNode, processPrecopyEdge, processRootEdge, processRoots, readyToFinalize, release, reportDelayedRootEdge, retainForFinalize, retainReferent, scanObject, traceObject, willNotMoveInCurrentCollection |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
modBuffer
private final ObjectReferenceDeque modBuffer
- Instance fields.
StickyMSNurseryTraceLocal
public StickyMSNurseryTraceLocal(Trace trace,
ObjectReferenceDeque modBuffer)
- Constructor
isLive
public boolean isLive(ObjectReference object)
- Is the specified object live?
- Overrides:
isLive in class TraceLocal
- Parameters:
object - The object.
- Returns:
- True if the object is live.
traceObject
public ObjectReference traceObject(ObjectReference object)
- This method is the core method during the trace of the object graph.
The role of this method is to:
1. Ensure the traced object is not collected.
2. If this is the first visit to the object enqueue it to be scanned.
3. Return the forwarded reference to the object.
In this instance, we refer objects in the mark-sweep space to the
msSpace for tracing, and defer to the superclass for all others.
- Overrides:
traceObject in class TraceLocal
- Parameters:
object - The object to be traced.
- Returns:
- The new reference to the same object instance.
processRememberedSets
protected void processRememberedSets()
- Process any remembered set entries. This means enumerating the
mod buffer and for each entry, marking the object as unlogged
and enqueing it for scanning.
- Overrides:
processRememberedSets in class TraceLocal