You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
StateFlow is a Flow analogue to ConflatedBroadcastChannel. Since Flow API
is simpler than channels APIs, the implementation of StateFlow is
simpler. It consumes and allocates less memory, while still providing
full deadlock-freedom (even though it is not lock-free internally).
Fixes#1973Fixes#395Fixes#1816
Copy file name to clipboardExpand all lines: kotlinx-coroutines-core/api/kotlinx-coroutines-core.api
+42-3
Original file line number
Diff line number
Diff line change
@@ -979,6 +979,7 @@ public final class kotlinx/coroutines/flow/FlowKt {
979
979
public static final fun skip (Lkotlinx/coroutines/flow/Flow;I)Lkotlinx/coroutines/flow/Flow;
980
980
public static final fun startWith (Lkotlinx/coroutines/flow/Flow;Ljava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
981
981
public static final fun startWith (Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;
982
+
public static final fun stateIn (Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
982
983
public static final fun subscribe (Lkotlinx/coroutines/flow/Flow;)V
983
984
public static final fun subscribe (Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;)V
984
985
public static final fun subscribe (Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;)V
@@ -998,7 +999,38 @@ public final class kotlinx/coroutines/flow/FlowKt {
998
999
public static final fun zip (Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/flow/Flow;
999
1000
}
1000
1001
1001
-
public abstract class kotlinx/coroutines/flow/internal/ChannelFlow : kotlinx/coroutines/flow/Flow {
1002
+
public abstract interface class kotlinx/coroutines/flow/MutableStateFlow : kotlinx/coroutines/flow/StateFlow {
1003
+
public abstract fun close (Ljava/lang/Throwable;)Z
1004
+
public abstract fun getValue ()Ljava/lang/Object;
1005
+
public abstract fun setValue (Ljava/lang/Object;)V
1006
+
}
1007
+
1008
+
public final class kotlinx/coroutines/flow/MutableStateFlow$DefaultImpls {
1009
+
public static synthetic fun close$default (Lkotlinx/coroutines/flow/MutableStateFlow;Ljava/lang/Throwable;ILjava/lang/Object;)Z
1010
+
}
1011
+
1012
+
public abstract interface class kotlinx/coroutines/flow/StateFlow : kotlinx/coroutines/flow/Flow {
1013
+
public abstract fun getValue ()Ljava/lang/Object;
1014
+
public abstract fun isClosed ()Z
1015
+
}
1016
+
1017
+
public abstract interface class kotlinx/coroutines/flow/StateFlowJob : kotlinx/coroutines/Job, kotlinx/coroutines/flow/StateFlow {
1018
+
}
1019
+
1020
+
public final class kotlinx/coroutines/flow/StateFlowJob$DefaultImpls {
1021
+
public static synthetic fun cancel (Lkotlinx/coroutines/flow/StateFlowJob;)V
1022
+
public static fun fold (Lkotlinx/coroutines/flow/StateFlowJob;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
1023
+
public static fun get (Lkotlinx/coroutines/flow/StateFlowJob;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
1024
+
public static fun minusKey (Lkotlinx/coroutines/flow/StateFlowJob;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;
1025
+
public static fun plus (Lkotlinx/coroutines/flow/StateFlowJob;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
1026
+
public static fun plus (Lkotlinx/coroutines/flow/StateFlowJob;Lkotlinx/coroutines/Job;)Lkotlinx/coroutines/Job;
1027
+
}
1028
+
1029
+
public final class kotlinx/coroutines/flow/StateFlowKt {
1030
+
public static final fun StateFlow (Ljava/lang/Object;)Lkotlinx/coroutines/flow/MutableStateFlow;
1031
+
}
1032
+
1033
+
public abstract class kotlinx/coroutines/flow/internal/ChannelFlow : kotlinx/coroutines/flow/internal/FusibleFlow {
1002
1034
public final field capacity I
1003
1035
public final field context Lkotlin/coroutines/CoroutineContext;
1004
1036
public fun <init> (Lkotlin/coroutines/CoroutineContext;I)V
@@ -1007,10 +1039,9 @@ public abstract class kotlinx/coroutines/flow/internal/ChannelFlow : kotlinx/cor
1007
1039
public fun collect (Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
1008
1040
protected abstract fun collectTo (Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
1009
1041
protected abstract fun create (Lkotlin/coroutines/CoroutineContext;I)Lkotlinx/coroutines/flow/internal/ChannelFlow;
1042
+
public fun fuse (Lkotlin/coroutines/CoroutineContext;I)Lkotlinx/coroutines/flow/internal/FusibleFlow;
1010
1043
public fun produceImpl (Lkotlinx/coroutines/CoroutineScope;)Lkotlinx/coroutines/channels/ReceiveChannel;
1011
1044
public fun toString ()Ljava/lang/String;
1012
-
public final fun update (Lkotlin/coroutines/CoroutineContext;I)Lkotlinx/coroutines/flow/internal/ChannelFlow;
1013
-
public static synthetic fun update$default (Lkotlinx/coroutines/flow/internal/ChannelFlow;Lkotlin/coroutines/CoroutineContext;IILjava/lang/Object;)Lkotlinx/coroutines/flow/internal/ChannelFlow;
1014
1045
}
1015
1046
1016
1047
public final class kotlinx/coroutines/flow/internal/CombineKt {
@@ -1021,6 +1052,14 @@ public final class kotlinx/coroutines/flow/internal/FlowExceptions_commonKt {
1021
1052
public static final fun checkIndexOverflow (I)I
1022
1053
}
1023
1054
1055
+
public abstract interface class kotlinx/coroutines/flow/internal/FusibleFlow : kotlinx/coroutines/flow/Flow {
1056
+
public abstract fun fuse (Lkotlin/coroutines/CoroutineContext;I)Lkotlinx/coroutines/flow/internal/FusibleFlow;
1057
+
}
1058
+
1059
+
public final class kotlinx/coroutines/flow/internal/FusibleFlow$DefaultImpls {
1060
+
public static synthetic fun fuse$default (Lkotlinx/coroutines/flow/internal/FusibleFlow;Lkotlin/coroutines/CoroutineContext;IILjava/lang/Object;)Lkotlinx/coroutines/flow/internal/FusibleFlow;
1061
+
}
1062
+
1024
1063
public final class kotlinx/coroutines/flow/internal/SafeCollector_commonKt {
1025
1064
public static final fun unsafeFlow (Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
0 commit comments