|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.mmtk.vm.Scanning org.jikesrvm.mm.mmtk.Scanning
public final class Scanning
Field Summary | |
---|---|
private static SynchronizedCounter |
threadCounter
Counter to track index into thread table for root tracing. |
Constructor Summary | |
---|---|
Scanning()
|
Method Summary | |
---|---|
void |
computeBootImageRoots(TraceLocal trace)
Compute all roots out of the VM's boot image (if any). |
void |
computeGlobalRoots(TraceLocal trace)
Computes global roots. |
void |
computeStaticRoots(TraceLocal trace)
Computes static roots. |
void |
computeThreadRoots(TraceLocal trace)
Computes roots pointed to by threads, their associated registers and stacks. |
void |
notifyInitialThreadScanComplete()
Called the first time during a collection that thread's stacks have been scanned. |
void |
resetThreadCounter()
Prepares for using the computeAllRoots method. |
void |
scanObject(TransitiveClosure trace,
ObjectReference object)
Scanning of a object, processing each pointer field encountered. |
void |
specializedScanObject(int id,
TransitiveClosure trace,
ObjectReference object)
Invoke a specialized scan method. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final SynchronizedCounter threadCounter
Constructor Detail |
---|
public Scanning()
Method Detail |
---|
public void scanObject(TransitiveClosure trace, ObjectReference object)
scanObject
in class Scanning
trace
- The closure being used.object
- The object to be scanned.public void specializedScanObject(int id, TransitiveClosure trace, ObjectReference object)
Scanning
specializedScanObject
in class Scanning
id
- The specialized method idtrace
- The trace the method has been specialized forobject
- The object to be scannedpublic void resetThreadCounter()
Scanning
computeAllRoots
method. The
thread counter allows multiple GC threads to co-operatively
iterate through the thread data structure (if load balancing
parallel GC threads were not important, the thread counter could
simply be replaced by a for loop).
resetThreadCounter
in class Scanning
public void notifyInitialThreadScanComplete()
Scanning
notifyInitialThreadScanComplete
in class Scanning
public void computeStaticRoots(TraceLocal trace)
threadCounter
must be reset so that load
balancing parallel GC can share the work of scanning threads.
computeStaticRoots
in class Scanning
trace
- The trace to use for computing roots.public void computeGlobalRoots(TraceLocal trace)
threadCounter
must be reset so that load
balancing parallel GC can share the work of scanning threads.
computeGlobalRoots
in class Scanning
trace
- The trace to use for computing roots.public void computeThreadRoots(TraceLocal trace)
threadCounter
must be reset so that load
balancing parallel GC can share the work of scanning threads.
computeThreadRoots
in class Scanning
trace
- The trace to use for computing roots.public void computeBootImageRoots(TraceLocal trace)
Scanning
computeBootImageRoots
in class Scanning
trace
- The trace object to use to report root locations.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |