|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.mmtk.plan.TransitiveClosure
org.mmtk.utility.deque.ObjectReferenceBuffer
public abstract class ObjectReferenceBuffer
This class is a combination of a Deque and a TraceStep, designed to include intelligent processing of child references as objects are scanned.
TransitiveClosure| Field Summary | |
|---|---|
private ObjectReferenceDeque |
values
|
| Fields inherited from class org.mmtk.plan.TransitiveClosure |
|---|
specializedScan |
| Constructor Summary | |
|---|---|
ObjectReferenceBuffer(String name,
SharedDeque queue)
Constructor |
|
| Method Summary | |
|---|---|
void |
flushLocal()
Flushes all local state back to the shared queue. |
boolean |
isEmpty()
|
boolean |
isFlushed()
Return true if this buffer is locally empty |
ObjectReference |
pop()
Retrieves an object. |
protected abstract void |
process(ObjectReference object)
This is the method that ensures |
void |
processChildren(ObjectReference object)
Process each of the child objects for the passed object. |
void |
processEdge(ObjectReference source,
Address slot)
Trace an edge during GC. |
void |
push(ObjectReference object)
Pushes an object onto the queue, forcing an inlined sequence. |
void |
pushOOL(ObjectReference object)
Pushes an object onto the queue, forcing an out of line sequence. |
| Methods inherited from class org.mmtk.plan.TransitiveClosure |
|---|
getSpecializedScanClass, processNode, registerSpecializedScan |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private final ObjectReferenceDeque values
| Constructor Detail |
|---|
public ObjectReferenceBuffer(String name,
SharedDeque queue)
name - The name of the underlying deque.queue - The shared deque that is used.| Method Detail |
|---|
public final void processEdge(ObjectReference source,
Address slot)
TransitiveClosure
processEdge in class TransitiveClosuresource - The source of the reference.slot - The location containing the object reference.protected abstract void process(ObjectReference object)
object - The object to process.public final void processChildren(ObjectReference object)
object - The object to process the children of.public final void push(ObjectReference object)
object - The object to push.public final void pushOOL(ObjectReference object)
object - The object to push.public final ObjectReference pop()
public final boolean isEmpty()
public final void flushLocal()
public final boolean isFlushed()
true if this buffer is locally empty
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||