Class ContextStateFutureImpl<T>
- java.lang.Object
-
- org.apache.flink.core.state.StateFutureImpl<T>
-
- org.apache.flink.runtime.asyncprocessing.ContextStateFutureImpl<T>
-
- All Implemented Interfaces:
org.apache.flink.api.common.state.v2.StateFuture<T>
,org.apache.flink.core.state.InternalStateFuture<T>
public class ContextStateFutureImpl<T> extends org.apache.flink.core.state.StateFutureImpl<T>
A state future that holds theRecordContext
and maintains the reference count of it. The reason why we maintain the reference here is that the ContextStateFutureImpl can be created multiple times since user may chain their code wildly, some of which are only for internal usage (SeeStateFutureImpl
). So maintaining reference counting by the lifecycle of state future is relatively simple and less error-prone.Reference counting added on
RecordContext
follows:- 1. +1 when this future created.
- 2. -1 when future completed.
- 3. +1 when callback registered.
- 4. -1 when callback finished.
- Please refer to
ContextStateFutureImplTest
where the reference counting is carefully tested.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
callbackFinished()
void
callbackRegistered()
<A> org.apache.flink.core.state.StateFutureImpl<A>
makeNewStateFuture()
void
postComplete(boolean inCallbackRunner)
-
Methods inherited from class org.apache.flink.core.state.StateFutureImpl
complete, completeExceptionally, get, isDone, thenAccept, thenApply, thenCombine, thenCompose, thenConditionallyAccept, thenConditionallyAccept, thenConditionallyApply, thenConditionallyApply, thenConditionallyCompose, thenConditionallyCompose, thenSyncAccept
-
-
-
-
Method Detail
-
makeNewStateFuture
public <A> org.apache.flink.core.state.StateFutureImpl<A> makeNewStateFuture()
- Overrides:
makeNewStateFuture
in classorg.apache.flink.core.state.StateFutureImpl<T>
-
callbackRegistered
public void callbackRegistered()
- Overrides:
callbackRegistered
in classorg.apache.flink.core.state.StateFutureImpl<T>
-
postComplete
public void postComplete(boolean inCallbackRunner)
- Overrides:
postComplete
in classorg.apache.flink.core.state.StateFutureImpl<T>
-
callbackFinished
public void callbackFinished()
- Overrides:
callbackFinished
in classorg.apache.flink.core.state.StateFutureImpl<T>
-
-