.class public abstract Lkotlinx/coroutines/intrinsics/UndispatchedKt; .super Ljava/lang/Object; .source "SourceFile" # direct methods .method public static final startCoroutineUndispatched(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V .locals 3 .line 11 invoke-static {p1}, Lkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineCreated(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; move-result-object v0 .line 30 :try_start_0 invoke-interface {p1}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext; move-result-object p1 const/4 v1, 0x0 .line 95 invoke-static {p1, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->updateThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 const/4 v2, 0x1 .line 31 :try_start_1 invoke-static {p0, v2}, Lkotlin/jvm/internal/TypeIntrinsics;->beforeCheckcastToFunctionOfArity(Ljava/lang/Object;I)Ljava/lang/Object; move-result-object p0 check-cast p0, Lkotlin/jvm/functions/Function1; invoke-interface {p0, v0}, Lkotlin/jvm/functions/Function1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_1 .line 99 :try_start_2 invoke-static {p1, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_0 .line 62 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p1 if-eq p0, p1, :cond_0 .line 64 invoke-static {p0}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 invoke-interface {v0, p0}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V goto :goto_1 :catchall_0 move-exception p0 goto :goto_0 :catchall_1 move-exception p0 .line 99 :try_start_3 invoke-static {p1, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V throw p0 :try_end_3 .catchall {:try_start_3 .. :try_end_3} :catchall_0 .line 59 :goto_0 sget-object p1, Lkotlin/Result;->Companion:Lkotlin/Result$Companion; invoke-static {p0}, Lkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object; move-result-object p0 invoke-static {p0}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 invoke-interface {v0, p0}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V :cond_0 :goto_1 return-void .end method .method public static final startCoroutineUndispatched(Lkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V .locals 3 .line 11 invoke-static {p2}, Lkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineCreated(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; move-result-object v0 .line 43 :try_start_0 invoke-interface {p2}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext; move-result-object p2 const/4 v1, 0x0 .line 95 invoke-static {p2, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->updateThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 const/4 v2, 0x2 .line 44 :try_start_1 invoke-static {p0, v2}, Lkotlin/jvm/internal/TypeIntrinsics;->beforeCheckcastToFunctionOfArity(Ljava/lang/Object;I)Ljava/lang/Object; move-result-object p0 check-cast p0, Lkotlin/jvm/functions/Function2; invoke-interface {p0, p1, v0}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_1 .line 99 :try_start_2 invoke-static {p2, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_0 .line 62 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p1 if-eq p0, p1, :cond_0 .line 64 invoke-static {p0}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 invoke-interface {v0, p0}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V goto :goto_1 :catchall_0 move-exception p0 goto :goto_0 :catchall_1 move-exception p0 .line 99 :try_start_3 invoke-static {p2, v1}, Lkotlinx/coroutines/internal/ThreadContextKt;->restoreThreadContext(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V throw p0 :try_end_3 .catchall {:try_start_3 .. :try_end_3} :catchall_0 .line 59 :goto_0 sget-object p1, Lkotlin/Result;->Companion:Lkotlin/Result$Companion; invoke-static {p0}, Lkotlin/ResultKt;->createFailure(Ljava/lang/Throwable;)Ljava/lang/Object; move-result-object p0 invoke-static {p0}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 invoke-interface {v0, p0}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V :cond_0 :goto_1 return-void .end method .method public static final startUndispatchedOrReturn(Lkotlinx/coroutines/internal/ScopeCoroutine;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object; .locals 3 const/4 v0, 0x2 .line 78 :try_start_0 invoke-static {p2, v0}, Lkotlin/jvm/internal/TypeIntrinsics;->beforeCheckcastToFunctionOfArity(Ljava/lang/Object;I)Ljava/lang/Object; move-result-object p2 check-cast p2, Lkotlin/jvm/functions/Function2; invoke-interface {p2, p1, p0}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 goto :goto_0 :catchall_0 move-exception p1 .line 100 new-instance p2, Lkotlinx/coroutines/CompletedExceptionally; const/4 v1, 0x0 const/4 v2, 0x0 invoke-direct {p2, p1, v1, v0, v2}, Lkotlinx/coroutines/CompletedExceptionally;->(Ljava/lang/Throwable;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V move-object p1, p2 .line 114 :goto_0 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p2 if-ne p1, p2, :cond_0 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p0 goto :goto_1 .line 115 :cond_0 invoke-virtual {p0, p1}, Lkotlinx/coroutines/JobSupport;->makeCompletingOnce$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 .line 116 sget-object p1, Lkotlinx/coroutines/JobSupportKt;->COMPLETING_WAITING_CHILDREN:Lkotlinx/coroutines/internal/Symbol; if-ne p0, p1, :cond_1 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p0 goto :goto_1 .line 117 :cond_1 instance-of p1, p0, Lkotlinx/coroutines/CompletedExceptionally; if-nez p1, :cond_2 .line 124 invoke-static {p0}, Lkotlinx/coroutines/JobSupportKt;->unboxState(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 :goto_1 return-object p0 .line 119 :cond_2 check-cast p0, Lkotlinx/coroutines/CompletedExceptionally; iget-object p0, p0, Lkotlinx/coroutines/CompletedExceptionally;->cause:Ljava/lang/Throwable; .line 62 throw p0 .end method .method public static final startUndispatchedOrReturnIgnoreTimeout(Lkotlinx/coroutines/internal/ScopeCoroutine;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object; .locals 3 const/4 v0, 0x2 .line 89 :try_start_0 invoke-static {p2, v0}, Lkotlin/jvm/internal/TypeIntrinsics;->beforeCheckcastToFunctionOfArity(Ljava/lang/Object;I)Ljava/lang/Object; move-result-object p2 check-cast p2, Lkotlin/jvm/functions/Function2; invoke-interface {p2, p1, p0}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 goto :goto_0 :catchall_0 move-exception p1 .line 100 new-instance p2, Lkotlinx/coroutines/CompletedExceptionally; const/4 v1, 0x0 const/4 v2, 0x0 invoke-direct {p2, p1, v1, v0, v2}, Lkotlinx/coroutines/CompletedExceptionally;->(Ljava/lang/Throwable;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V move-object p1, p2 .line 114 :goto_0 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p2 if-ne p1, p2, :cond_0 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p0 goto :goto_2 .line 115 :cond_0 invoke-virtual {p0, p1}, Lkotlinx/coroutines/JobSupport;->makeCompletingOnce$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p2 .line 116 sget-object v0, Lkotlinx/coroutines/JobSupportKt;->COMPLETING_WAITING_CHILDREN:Lkotlinx/coroutines/internal/Symbol; if-ne p2, v0, :cond_1 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p0 goto :goto_2 .line 117 :cond_1 instance-of v0, p2, Lkotlinx/coroutines/CompletedExceptionally; if-eqz v0, :cond_4 .line 119 check-cast p2, Lkotlinx/coroutines/CompletedExceptionally; iget-object p2, p2, Lkotlinx/coroutines/CompletedExceptionally;->cause:Ljava/lang/Throwable; .line 88 instance-of v0, p2, Lkotlinx/coroutines/TimeoutCancellationException; if-eqz v0, :cond_3 move-object v0, p2 check-cast v0, Lkotlinx/coroutines/TimeoutCancellationException; iget-object v0, v0, Lkotlinx/coroutines/TimeoutCancellationException;->coroutine:Lkotlinx/coroutines/Job; if-ne v0, p0, :cond_3 .line 120 instance-of p0, p1, Lkotlinx/coroutines/CompletedExceptionally; if-nez p0, :cond_2 goto :goto_1 :cond_2 check-cast p1, Lkotlinx/coroutines/CompletedExceptionally; iget-object p0, p1, Lkotlinx/coroutines/CompletedExceptionally;->cause:Ljava/lang/Throwable; .line 62 throw p0 :cond_3 throw p2 .line 124 :cond_4 invoke-static {p2}, Lkotlinx/coroutines/JobSupportKt;->unboxState(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 :goto_1 move-object p0, p1 :goto_2 return-object p0 .end method