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#1973
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
@@ -974,6 +974,7 @@ public final class kotlinx/coroutines/flow/FlowKt {
974
974
public static final fun skip (Lkotlinx/coroutines/flow/Flow;I)Lkotlinx/coroutines/flow/Flow;
975
975
public static final fun startWith (Lkotlinx/coroutines/flow/Flow;Ljava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
976
976
public static final fun startWith (Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;
977
+
public static final fun stateIn (Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
977
978
public static final fun subscribe (Lkotlinx/coroutines/flow/Flow;)V
978
979
public static final fun subscribe (Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;)V
979
980
public static final fun subscribe (Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;)V
@@ -993,7 +994,38 @@ public final class kotlinx/coroutines/flow/FlowKt {
993
994
public static final fun zip (Lkotlinx/coroutines/flow/Flow;Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/flow/Flow;
994
995
}
995
996
996
-
public abstract class kotlinx/coroutines/flow/internal/ChannelFlow : kotlinx/coroutines/flow/Flow {
997
+
public abstract interface class kotlinx/coroutines/flow/MutableStateFlow : kotlinx/coroutines/flow/StateFlow {
998
+
public abstract fun close (Ljava/lang/Throwable;)Z
999
+
public abstract fun getValue ()Ljava/lang/Object;
1000
+
public abstract fun setValue (Ljava/lang/Object;)V
1001
+
}
1002
+
1003
+
public final class kotlinx/coroutines/flow/MutableStateFlow$DefaultImpls {
1004
+
public static synthetic fun close$default (Lkotlinx/coroutines/flow/MutableStateFlow;Ljava/lang/Throwable;ILjava/lang/Object;)Z
1005
+
}
1006
+
1007
+
public abstract interface class kotlinx/coroutines/flow/StateFlow : kotlinx/coroutines/flow/Flow {
1008
+
public abstract fun getValue ()Ljava/lang/Object;
1009
+
public abstract fun isClosed ()Z
1010
+
}
1011
+
1012
+
public abstract interface class kotlinx/coroutines/flow/StateFlowJob : kotlinx/coroutines/Job, kotlinx/coroutines/flow/StateFlow {
1013
+
}
1014
+
1015
+
public final class kotlinx/coroutines/flow/StateFlowJob$DefaultImpls {
1016
+
public static synthetic fun cancel (Lkotlinx/coroutines/flow/StateFlowJob;)V
1017
+
public static fun fold (Lkotlinx/coroutines/flow/StateFlowJob;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
1018
+
public static fun get (Lkotlinx/coroutines/flow/StateFlowJob;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;
1019
+
public static fun minusKey (Lkotlinx/coroutines/flow/StateFlowJob;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;
1020
+
public static fun plus (Lkotlinx/coroutines/flow/StateFlowJob;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext;
1021
+
public static fun plus (Lkotlinx/coroutines/flow/StateFlowJob;Lkotlinx/coroutines/Job;)Lkotlinx/coroutines/Job;
1022
+
}
1023
+
1024
+
public final class kotlinx/coroutines/flow/StateFlowKt {
1025
+
public static final fun StateFlow (Ljava/lang/Object;)Lkotlinx/coroutines/flow/MutableStateFlow;
1026
+
}
1027
+
1028
+
public abstract class kotlinx/coroutines/flow/internal/ChannelFlow : kotlinx/coroutines/flow/internal/FusibleFlow {
997
1029
public final field capacity I
998
1030
public final field context Lkotlin/coroutines/CoroutineContext;
999
1031
public fun <init> (Lkotlin/coroutines/CoroutineContext;I)V
@@ -1002,10 +1034,9 @@ public abstract class kotlinx/coroutines/flow/internal/ChannelFlow : kotlinx/cor
1002
1034
public fun collect (Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
1003
1035
protected abstract fun collectTo (Lkotlinx/coroutines/channels/ProducerScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
1004
1036
protected abstract fun create (Lkotlin/coroutines/CoroutineContext;I)Lkotlinx/coroutines/flow/internal/ChannelFlow;
1037
+
public fun fuse (Lkotlin/coroutines/CoroutineContext;I)Lkotlinx/coroutines/flow/internal/FusibleFlow;
1005
1038
public fun produceImpl (Lkotlinx/coroutines/CoroutineScope;)Lkotlinx/coroutines/channels/ReceiveChannel;
1006
1039
public fun toString ()Ljava/lang/String;
1007
-
public final fun update (Lkotlin/coroutines/CoroutineContext;I)Lkotlinx/coroutines/flow/internal/ChannelFlow;
1008
-
public static synthetic fun update$default (Lkotlinx/coroutines/flow/internal/ChannelFlow;Lkotlin/coroutines/CoroutineContext;IILjava/lang/Object;)Lkotlinx/coroutines/flow/internal/ChannelFlow;
1009
1040
}
1010
1041
1011
1042
public final class kotlinx/coroutines/flow/internal/CombineKt {
@@ -1016,6 +1047,14 @@ public final class kotlinx/coroutines/flow/internal/FlowExceptions_commonKt {
1016
1047
public static final fun checkIndexOverflow (I)I
1017
1048
}
1018
1049
1050
+
public abstract interface class kotlinx/coroutines/flow/internal/FusibleFlow : kotlinx/coroutines/flow/Flow {
1051
+
public abstract fun fuse (Lkotlin/coroutines/CoroutineContext;I)Lkotlinx/coroutines/flow/internal/FusibleFlow;
1052
+
}
1053
+
1054
+
public final class kotlinx/coroutines/flow/internal/FusibleFlow$DefaultImpls {
1055
+
public static synthetic fun fuse$default (Lkotlinx/coroutines/flow/internal/FusibleFlow;Lkotlin/coroutines/CoroutineContext;IILjava/lang/Object;)Lkotlinx/coroutines/flow/internal/FusibleFlow;
1056
+
}
1057
+
1019
1058
public final class kotlinx/coroutines/flow/internal/SafeCollector_commonKt {
1020
1059
public static final fun unsafeFlow (Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
0 commit comments