.class public abstract Lkotlinx/coroutines/channels/BufferedChannelKt; .super Ljava/lang/Object; .source "SourceFile" # static fields .field public static final BUFFERED:Lkotlinx/coroutines/internal/Symbol; .field public static final CHANNEL_CLOSED:Lkotlinx/coroutines/internal/Symbol; .field public static final CLOSE_HANDLER_CLOSED:Lkotlinx/coroutines/internal/Symbol; .field public static final CLOSE_HANDLER_INVOKED:Lkotlinx/coroutines/internal/Symbol; .field public static final DONE_RCV:Lkotlinx/coroutines/internal/Symbol; .field public static final EXPAND_BUFFER_COMPLETION_WAIT_ITERATIONS:I .field public static final FAILED:Lkotlinx/coroutines/internal/Symbol; .field public static final INTERRUPTED_RCV:Lkotlinx/coroutines/internal/Symbol; .field public static final INTERRUPTED_SEND:Lkotlinx/coroutines/internal/Symbol; .field public static final IN_BUFFER:Lkotlinx/coroutines/internal/Symbol; .field public static final NO_CLOSE_CAUSE:Lkotlinx/coroutines/internal/Symbol; .field public static final NO_RECEIVE_RESULT:Lkotlinx/coroutines/internal/Symbol; .field public static final NULL_SEGMENT:Lkotlinx/coroutines/channels/ChannelSegment; .field public static final POISONED:Lkotlinx/coroutines/internal/Symbol; .field public static final RESUMING_BY_EB:Lkotlinx/coroutines/internal/Symbol; .field public static final RESUMING_BY_RCV:Lkotlinx/coroutines/internal/Symbol; .field public static final SEGMENT_SIZE:I .field public static final SUSPEND:Lkotlinx/coroutines/internal/Symbol; .field public static final SUSPEND_NO_WAITER:Lkotlinx/coroutines/internal/Symbol; # direct methods .method static constructor ()V .locals 13 .line 2871 new-instance v6, Lkotlinx/coroutines/channels/ChannelSegment; const-wide/16 v1, -0x1 const/4 v3, 0x0 const/4 v4, 0x0 const/4 v5, 0x0 move-object v0, v6 invoke-direct/range {v0 .. v5}, Lkotlinx/coroutines/channels/ChannelSegment;->(JLkotlinx/coroutines/channels/ChannelSegment;Lkotlinx/coroutines/channels/BufferedChannel;I)V sput-object v6, Lkotlinx/coroutines/channels/BufferedChannelKt;->NULL_SEGMENT:Lkotlinx/coroutines/channels/ChannelSegment; const-string v7, "kotlinx.coroutines.bufferedChannel.segmentSize" const/16 v8, 0x20 const/4 v9, 0x0 const/4 v10, 0x0 const/16 v11, 0xc const/4 v12, 0x0 .line 2877 invoke-static/range {v7 .. v12}, Lkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;IIIILjava/lang/Object;)I move-result v0 sput v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->SEGMENT_SIZE:I const-string v1, "kotlinx.coroutines.bufferedChannel.expandBufferCompletionWaitIterations" const/16 v2, 0x2710 const/4 v3, 0x0 const/4 v4, 0x0 const/16 v5, 0xc const/4 v6, 0x0 .line 2884 invoke-static/range {v1 .. v6}, Lkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;IIIILjava/lang/Object;)I move-result v0 sput v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->EXPAND_BUFFER_COMPLETION_WAIT_ITERATIONS:I .line 2921 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "BUFFERED" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->BUFFERED:Lkotlinx/coroutines/internal/Symbol; .line 2924 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "SHOULD_BUFFER" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->IN_BUFFER:Lkotlinx/coroutines/internal/Symbol; .line 2929 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "S_RESUMING_BY_RCV" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->RESUMING_BY_RCV:Lkotlinx/coroutines/internal/Symbol; .line 2934 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "RESUMING_BY_EB" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->RESUMING_BY_EB:Lkotlinx/coroutines/internal/Symbol; .line 2939 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "POISONED" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->POISONED:Lkotlinx/coroutines/internal/Symbol; .line 2942 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "DONE_RCV" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->DONE_RCV:Lkotlinx/coroutines/internal/Symbol; .line 2944 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "INTERRUPTED_SEND" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->INTERRUPTED_SEND:Lkotlinx/coroutines/internal/Symbol; .line 2946 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "INTERRUPTED_RCV" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->INTERRUPTED_RCV:Lkotlinx/coroutines/internal/Symbol; .line 2948 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "CHANNEL_CLOSED" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->CHANNEL_CLOSED:Lkotlinx/coroutines/internal/Symbol; .line 2978 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "SUSPEND" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->SUSPEND:Lkotlinx/coroutines/internal/Symbol; .line 2979 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "SUSPEND_NO_WAITER" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->SUSPEND_NO_WAITER:Lkotlinx/coroutines/internal/Symbol; .line 2980 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "FAILED" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->FAILED:Lkotlinx/coroutines/internal/Symbol; .line 2996 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "NO_RECEIVE_RESULT" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->NO_RECEIVE_RESULT:Lkotlinx/coroutines/internal/Symbol; .line 3003 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "CLOSE_HANDLER_CLOSED" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->CLOSE_HANDLER_CLOSED:Lkotlinx/coroutines/internal/Symbol; .line 3004 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "CLOSE_HANDLER_INVOKED" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->CLOSE_HANDLER_INVOKED:Lkotlinx/coroutines/internal/Symbol; .line 3011 new-instance v0, Lkotlinx/coroutines/internal/Symbol; const-string v1, "NO_CLOSE_CAUSE" invoke-direct {v0, v1}, Lkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V sput-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->NO_CLOSE_CAUSE:Lkotlinx/coroutines/internal/Symbol; return-void .end method .method public static final synthetic access$constructEBCompletedAndPauseFlag(JZ)J .locals 0 .line 1 invoke-static {p0, p1, p2}, Lkotlinx/coroutines/channels/BufferedChannelKt;->constructEBCompletedAndPauseFlag(JZ)J move-result-wide p0 return-wide p0 .end method .method public static final synthetic access$constructSendersAndCloseStatus(JI)J .locals 0 .line 1 invoke-static {p0, p1, p2}, Lkotlinx/coroutines/channels/BufferedChannelKt;->constructSendersAndCloseStatus(JI)J move-result-wide p0 return-wide p0 .end method .method public static final synthetic access$createSegment(JLkotlinx/coroutines/channels/ChannelSegment;)Lkotlinx/coroutines/channels/ChannelSegment; .locals 0 .line 1 invoke-static {p0, p1, p2}, Lkotlinx/coroutines/channels/BufferedChannelKt;->createSegment(JLkotlinx/coroutines/channels/ChannelSegment;)Lkotlinx/coroutines/channels/ChannelSegment; move-result-object p0 return-object p0 .end method .method public static final synthetic access$getCLOSE_HANDLER_CLOSED$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->CLOSE_HANDLER_CLOSED:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getCLOSE_HANDLER_INVOKED$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->CLOSE_HANDLER_INVOKED:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getDONE_RCV$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->DONE_RCV:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getEXPAND_BUFFER_COMPLETION_WAIT_ITERATIONS$p()I .locals 1 sget v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->EXPAND_BUFFER_COMPLETION_WAIT_ITERATIONS:I return v0 .end method .method public static final synthetic access$getFAILED$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->FAILED:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getINTERRUPTED_RCV$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->INTERRUPTED_RCV:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getINTERRUPTED_SEND$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->INTERRUPTED_SEND:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getIN_BUFFER$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->IN_BUFFER:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getNO_CLOSE_CAUSE$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->NO_CLOSE_CAUSE:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getNO_RECEIVE_RESULT$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->NO_RECEIVE_RESULT:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getNULL_SEGMENT$p()Lkotlinx/coroutines/channels/ChannelSegment; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->NULL_SEGMENT:Lkotlinx/coroutines/channels/ChannelSegment; return-object v0 .end method .method public static final synthetic access$getPOISONED$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->POISONED:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getRESUMING_BY_EB$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->RESUMING_BY_EB:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getRESUMING_BY_RCV$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->RESUMING_BY_RCV:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getSUSPEND$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->SUSPEND:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$getSUSPEND_NO_WAITER$p()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->SUSPEND_NO_WAITER:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final synthetic access$initialBufferEnd(I)J .locals 2 .line 1 invoke-static {p0}, Lkotlinx/coroutines/channels/BufferedChannelKt;->initialBufferEnd(I)J move-result-wide v0 return-wide v0 .end method .method public static final synthetic access$tryResume0(Lkotlinx/coroutines/CancellableContinuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Z .locals 0 .line 1 invoke-static {p0, p1, p2}, Lkotlinx/coroutines/channels/BufferedChannelKt;->tryResume0(Lkotlinx/coroutines/CancellableContinuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Z move-result p0 return p0 .end method .method public static final constructEBCompletedAndPauseFlag(JZ)J .locals 2 if-eqz p2, :cond_0 const-wide/high16 v0, 0x4000000000000000L # 2.0 goto :goto_0 :cond_0 const-wide/16 v0, 0x0 :goto_0 add-long/2addr v0, p0 return-wide v0 .end method .method public static final constructSendersAndCloseStatus(JI)J .locals 2 int-to-long v0, p2 const/16 p2, 0x3c shl-long/2addr v0, p2 add-long/2addr v0, p0 return-wide v0 .end method .method public static final createSegment(JLkotlinx/coroutines/channels/ChannelSegment;)Lkotlinx/coroutines/channels/ChannelSegment; .locals 7 .line 2865 new-instance v6, Lkotlinx/coroutines/channels/ChannelSegment; .line 2868 invoke-virtual {p2}, Lkotlinx/coroutines/channels/ChannelSegment;->getChannel()Lkotlinx/coroutines/channels/BufferedChannel; move-result-object v4 const/4 v5, 0x0 move-object v0, v6 move-wide v1, p0 move-object v3, p2 .line 2865 invoke-direct/range {v0 .. v5}, Lkotlinx/coroutines/channels/ChannelSegment;->(JLkotlinx/coroutines/channels/ChannelSegment;Lkotlinx/coroutines/channels/BufferedChannel;I)V return-object v6 .end method .method public static final createSegmentFunction()Lkotlin/reflect/KFunction; .locals 1 .line 2863 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt$createSegmentFunction$1;->INSTANCE:Lkotlinx/coroutines/channels/BufferedChannelKt$createSegmentFunction$1; return-object v0 .end method .method public static final getCHANNEL_CLOSED()Lkotlinx/coroutines/internal/Symbol; .locals 1 sget-object v0, Lkotlinx/coroutines/channels/BufferedChannelKt;->CHANNEL_CLOSED:Lkotlinx/coroutines/internal/Symbol; return-object v0 .end method .method public static final initialBufferEnd(I)J .locals 2 if-eqz p0, :cond_1 const v0, 0x7fffffff if-eq p0, v0, :cond_0 int-to-long v0, p0 goto :goto_0 :cond_0 const-wide v0, 0x7fffffffffffffffL goto :goto_0 :cond_1 const-wide/16 v0, 0x0 :goto_0 return-wide v0 .end method .method public static final tryResume0(Lkotlinx/coroutines/CancellableContinuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Z .locals 1 const/4 v0, 0x0 .line 2894 invoke-interface {p0, p1, v0, p2}, Lkotlinx/coroutines/CancellableContinuation;->tryResume(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; move-result-object p1 if-eqz p1, :cond_0 .line 2896 invoke-interface {p0, p1}, Lkotlinx/coroutines/CancellableContinuation;->completeResume(Ljava/lang/Object;)V const/4 p0, 0x1 goto :goto_0 :cond_0 const/4 p0, 0x0 :goto_0 return p0 .end method .method public static synthetic tryResume0$default(Lkotlinx/coroutines/CancellableContinuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Z .locals 0 and-int/lit8 p3, p3, 0x2 if-eqz p3, :cond_0 const/4 p2, 0x0 .line 2890 :cond_0 invoke-static {p0, p1, p2}, Lkotlinx/coroutines/channels/BufferedChannelKt;->tryResume0(Lkotlinx/coroutines/CancellableContinuation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Z move-result p0 return p0 .end method