public class GenCopyMutator extends GenMutator
GenCopy two-generational copying collector.
Specifically, this class defines mutator-time semantics specific to the
mature generation (GenMutator defines nursery semantics).
In particular the mature space allocator is defined (for mutator-time
allocation into the mature space via pre-tenuring), and the mature space
per-mutator thread collection time semantics are defined (rebinding
the mature space allocator).
| Modifier and Type | Field and Description |
|---|---|
private CopyLocal |
mature
The allocator for the copying mature space (the mutator may
"pretenure" objects into this space otherwise used only by
the collector)
|
arrayRemset, nursery, remset| Constructor and Description |
|---|
GenCopyMutator()
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
Address |
alloc(int bytes,
int align,
int offset,
int allocator,
int site)
Allocate memory for an object.
|
void |
collectionPhase(short phaseId,
boolean primary)
Perform a per-mutator collection phase.
|
Allocator |
getAllocatorFromSpace(Space space)
Return the allocator instance associated with a space
space, for this plan instance. |
private static GenCopy |
global() |
void |
initMutator(int id)
Called before the MutatorContext is used, but after the context has been
fully registered and is visible to collection.
|
void |
postAlloc(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator)
Perform post-allocation actions.
|
assertRemsetsFlushed, flushRememberedSets, objectReferenceBulkCopy, objectReferenceNonHeapWrite, objectReferenceTryCompareAndSwap, objectReferenceWriteaddressBulkCopy, addressRead, addressTryCompareAndSwap, addressWrite, booleanBulkCopy, booleanRead, booleanWrite, byteBulkCopy, byteRead, byteWrite, charBulkCopy, charRead, charWrite, checkAllocator, deinitMutator, doubleBulkCopy, doubleRead, doubleWrite, extentBulkCopy, extentRead, extentWrite, floatBulkCopy, floatRead, floatWrite, flush, getId, getLog, intBulkCopy, intRead, intTryCompareAndSwap, intWrite, javaLangReferenceReadBarrier, longBulkCopy, longRead, longTryCompareAndSwap, longWrite, objectReferenceNonHeapRead, objectReferenceRead, offsetBulkCopy, offsetRead, offsetWrite, shortBulkCopy, shortRead, shortWrite, wordBulkCopy, wordRead, wordTryCompareAndSwap, wordWritepublic GenCopyMutator()
public void initMutator(int id)
initMutator in class MutatorContextid - The id of this mutator context.public final Address alloc(int bytes, int align, int offset, int allocator, int site)
alloc in class GenMutatorbytes - The number of bytes required for the object.align - Required alignment for the object.offset - Offset associated with the alignment.allocator - The allocator associated with this request.site - Allocation sitepublic final void postAlloc(ObjectReference object, ObjectReference typeRef, int bytes, int allocator)
MutatorContextpostAlloc in class GenMutatorobject - The newly allocated objecttypeRef - the type reference for the instance being createdbytes - The size of the space to be allocated (in bytes)allocator - The allocator number to be used for this allocationpublic final Allocator getAllocatorFromSpace(Space space)
MutatorContextspace, for this plan instance.getAllocatorFromSpace in class GenMutatorspace - The space for which the allocator instance is desired.space, or null
if no appropriate allocator can be established.public void collectionPhase(short phaseId, boolean primary)
collectionPhase in class GenMutatorphaseId - The unique phase identifierprimary - Should this thread be used to execute any single-threaded
local operations?