Class AdaptivePoolingAllocator.Chunk
java.lang.Object
io.netty.buffer.AdaptivePoolingAllocator.Chunk
- All Implemented Interfaces:
ReferenceCounted
- Direct Known Subclasses:
AdaptivePoolingAllocator.SizeClassedChunk
- Enclosing class:
AdaptivePoolingAllocator
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final AtomicIntegerFieldUpdater<AdaptivePoolingAllocator.Chunk> protected intprivate final AdaptivePoolingAllocatorprivate final intprivate final AdaptivePoolingAllocator.ChunkReleasePredicateprotected final AbstractByteBufprotected AdaptivePoolingAllocator.Magazineprivate final booleanprivate intprivate static final longprivate static final ReferenceCountUpdater<AdaptivePoolingAllocator.Chunk> -
Constructor Summary
ConstructorsConstructorDescriptionChunk()Chunk(AbstractByteBuf delegate, AdaptivePoolingAllocator.Magazine magazine, boolean pooled, AdaptivePoolingAllocator.ChunkReleasePredicate chunkReleasePredicate) -
Method Summary
Modifier and TypeMethodDescription(package private) voidintcapacity()(package private) AdaptivePoolingAllocator.Magazineprivate void(package private) voidvoidreadInitInto(AdaptivePoolingAllocator.AdaptiveByteBuf buf, int size, int startingCapacity, int maxCapacity) intrefCnt()Returns the reference count of this object.booleanrelease()Decreases the reference count by1and deallocates this object if the reference count reaches at0.booleanrelease(int decrement) Decreases the reference count by the specifieddecrementand deallocates this object if the reference count reaches at0.(package private) booleanCalled when a magazine is done using this chunk, probably because it was emptied.(package private) booleanreleaseSegment(int ignoredSegmentId) Called when a ByteBuf is done using its allocation in this chunk.intretain()Increases the reference count by1.retain(int increment) Increases the reference count by the specifiedincrement.touch()Records the current access location of this object for debugging purposes.Records the current access location of this object with an additional arbitrary information for debugging purposes.
-
Field Details
-
REFCNT_FIELD_OFFSET
private static final long REFCNT_FIELD_OFFSET -
AIF_UPDATER
-
delegate
-
magazine
-
allocator
-
chunkReleasePredicate
-
capacity
private final int capacity -
pooled
private final boolean pooled -
allocatedBytes
protected int allocatedBytes -
updater
-
refCnt
private volatile int refCnt
-
-
Constructor Details
-
Chunk
Chunk() -
Chunk
Chunk(AbstractByteBuf delegate, AdaptivePoolingAllocator.Magazine magazine, boolean pooled, AdaptivePoolingAllocator.ChunkReleasePredicate chunkReleasePredicate)
-
-
Method Details
-
currentMagazine
AdaptivePoolingAllocator.Magazine currentMagazine() -
detachFromMagazine
void detachFromMagazine() -
attachToMagazine
-
touch
Description copied from interface:ReferenceCountedRecords the current access location of this object with an additional arbitrary information for debugging purposes. If this object is determined to be leaked, the information recorded by this operation will be provided to you viaResourceLeakDetector.- Specified by:
touchin interfaceReferenceCounted
-
refCnt
public int refCnt()Description copied from interface:ReferenceCountedReturns the reference count of this object. If0, it means this object has been deallocated.- Specified by:
refCntin interfaceReferenceCounted
-
retain
Description copied from interface:ReferenceCountedIncreases the reference count by1.- Specified by:
retainin interfaceReferenceCounted
-
retain
Description copied from interface:ReferenceCountedIncreases the reference count by the specifiedincrement.- Specified by:
retainin interfaceReferenceCounted
-
touch
Description copied from interface:ReferenceCountedRecords the current access location of this object for debugging purposes. If this object is determined to be leaked, the information recorded by this operation will be provided to you viaResourceLeakDetector. This method is a shortcut totouch(null).- Specified by:
touchin interfaceReferenceCounted
-
release
public boolean release()Description copied from interface:ReferenceCountedDecreases the reference count by1and deallocates this object if the reference count reaches at0.- Specified by:
releasein interfaceReferenceCounted- Returns:
trueif and only if the reference count became0and this object has been deallocated
-
release
public boolean release(int decrement) Description copied from interface:ReferenceCountedDecreases the reference count by the specifieddecrementand deallocates this object if the reference count reaches at0.- Specified by:
releasein interfaceReferenceCounted- Returns:
trueif and only if the reference count became0and this object has been deallocated
-
releaseFromMagazine
boolean releaseFromMagazine()Called when a magazine is done using this chunk, probably because it was emptied. -
releaseSegment
boolean releaseSegment(int ignoredSegmentId) Called when a ByteBuf is done using its allocation in this chunk. -
deallocate
private void deallocate() -
readInitInto
public void readInitInto(AdaptivePoolingAllocator.AdaptiveByteBuf buf, int size, int startingCapacity, int maxCapacity) -
remainingCapacity
public int remainingCapacity() -
capacity
public int capacity()
-