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 Details

    • ReferenceCounted

      public ReferenceCounted(int initReference)
  • Method Details

    • 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.