Class ReferenceCounted<ReleaseHelper>
- java.lang.Object
-
- org.apache.flink.runtime.asyncprocessing.ReferenceCounted<ReleaseHelper>
-
- Direct Known Subclasses:
RecordContext
@Internal @ThreadSafe public abstract class ReferenceCounted<ReleaseHelper> extends Object
An object that can be reference counted, the internal resource would be released when the reference count reaches zero. This class is designed to be high-performance, lock-free and thread-safe.
-
-
Constructor Summary
Constructors Constructor Description ReferenceCounted(int initReference)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description intgetReferenceCount()protected abstract voidreferenceCountReachedZero(ReleaseHelper releaseHelper)A method called when the reference count reaches zero.intrelease()intrelease(ReleaseHelper releaseHelper)intretain()inttryRetain()Try to retain this object.
-
-
-
Method Detail
-
retain
public int retain()
-
tryRetain
public int tryRetain()
Try to retain this object. Fail if reference count is already zero.- Returns:
- zero if failed, otherwise current reference count.
-
release
public int release()
-
release
public int release(@Nullable ReleaseHelper releaseHelper)
-
getReferenceCount
public int getReferenceCount()
-
referenceCountReachedZero
protected abstract void referenceCountReachedZero(@Nullable ReleaseHelper releaseHelper)A method called when the reference count reaches zero.
-
-