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 int
getReferenceCount()
protected abstract void
referenceCountReachedZero(ReleaseHelper releaseHelper)
A method called when the reference count reaches zero.int
release()
int
release(ReleaseHelper releaseHelper)
int
retain()
int
tryRetain()
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.
-
-