.class public abstract Lkotlinx/coroutines/YieldKt; .super Ljava/lang/Object; .source "SourceFile" # direct methods .method public static final yield(Lkotlin/coroutines/Continuation;)Ljava/lang/Object; .locals 4 .line 31 invoke-interface {p0}, Lkotlin/coroutines/Continuation;->getContext()Lkotlin/coroutines/CoroutineContext; move-result-object v0 .line 32 invoke-static {v0}, Lkotlinx/coroutines/JobKt;->ensureActive(Lkotlin/coroutines/CoroutineContext;)V .line 33 invoke-static {p0}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->intercepted(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; move-result-object v1 instance-of v2, v1, Lkotlinx/coroutines/internal/DispatchedContinuation; if-eqz v2, :cond_0 check-cast v1, Lkotlinx/coroutines/internal/DispatchedContinuation; goto :goto_0 :cond_0 const/4 v1, 0x0 :goto_0 if-nez v1, :cond_1 sget-object v0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; goto :goto_2 .line 34 :cond_1 iget-object v2, v1, Lkotlinx/coroutines/internal/DispatchedContinuation;->dispatcher:Lkotlinx/coroutines/CoroutineDispatcher; invoke-virtual {v2, v0}, Lkotlinx/coroutines/CoroutineDispatcher;->isDispatchNeeded(Lkotlin/coroutines/CoroutineContext;)Z move-result v2 if-eqz v2, :cond_2 .line 36 sget-object v2, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; invoke-virtual {v1, v0, v2}, Lkotlinx/coroutines/internal/DispatchedContinuation;->dispatchYield$kotlinx_coroutines_core(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V goto :goto_1 .line 40 :cond_2 new-instance v2, Lkotlinx/coroutines/YieldContext; invoke-direct {v2}, Lkotlinx/coroutines/YieldContext;->()V .line 41 invoke-interface {v0, v2}, Lkotlin/coroutines/CoroutineContext;->plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext; move-result-object v0 sget-object v3, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; invoke-virtual {v1, v0, v3}, Lkotlinx/coroutines/internal/DispatchedContinuation;->dispatchYield$kotlinx_coroutines_core(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V iget-boolean v0, v2, Lkotlinx/coroutines/YieldContext;->dispatcherWasUnconfined:Z if-eqz v0, :cond_4 .line 46 invoke-static {v1}, Lkotlinx/coroutines/internal/DispatchedContinuationKt;->yieldUndispatched(Lkotlinx/coroutines/internal/DispatchedContinuation;)Z move-result v0 if-eqz v0, :cond_3 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object v0 goto :goto_2 :cond_3 move-object v0, v3 goto :goto_2 .line 50 :cond_4 :goto_1 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object v0 .line 30 :goto_2 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object v1 if-ne v0, v1, :cond_5 invoke-static {p0}, Lkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineSuspended(Lkotlin/coroutines/Continuation;)V :cond_5 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p0 if-ne v0, p0, :cond_6 return-object v0 :cond_6 sget-object p0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; return-object p0 .end method