42 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package kotlinx.coroutines;
 | |
| 
 | |
| import kotlin.Metadata;
 | |
| import kotlin.Unit;
 | |
| import kotlin.coroutines.Continuation;
 | |
| import kotlin.coroutines.CoroutineContext;
 | |
| import kotlin.coroutines.intrinsics.IntrinsicsKt;
 | |
| import kotlin.coroutines.jvm.internal.DebugProbesKt;
 | |
| import kotlinx.coroutines.internal.DispatchedContinuation;
 | |
| import kotlinx.coroutines.internal.DispatchedContinuationKt;
 | |
| 
 | |
| /* compiled from: Yield.kt */
 | |
| @Metadata(d1 = {"\u0000\n\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\u001a\u0011\u0010\u0000\u001a\u00020\u0001H\u0086@ø\u0001\u0000¢\u0006\u0002\u0010\u0002\u0082\u0002\u0004\n\u0002\b\u0019¨\u0006\u0003"}, d2 = {"yield", "", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "kotlinx-coroutines-core"}, k = 2, mv = {1, 8, 0}, xi = 48)
 | |
| /* loaded from: classes.dex */
 | |
| public final class YieldKt {
 | |
|     public static final Object yield(Continuation<? super Unit> continuation) {
 | |
|         Object coroutine_suspended;
 | |
|         CoroutineContext coroutineContext = continuation.get$context();
 | |
|         JobKt.ensureActive(coroutineContext);
 | |
|         Continuation intercepted = IntrinsicsKt.intercepted(continuation);
 | |
|         DispatchedContinuation dispatchedContinuation = intercepted instanceof DispatchedContinuation ? (DispatchedContinuation) intercepted : null;
 | |
|         if (dispatchedContinuation == null) {
 | |
|             coroutine_suspended = Unit.INSTANCE;
 | |
|         } else {
 | |
|             if (dispatchedContinuation.dispatcher.isDispatchNeeded(coroutineContext)) {
 | |
|                 dispatchedContinuation.dispatchYield$kotlinx_coroutines_core(coroutineContext, Unit.INSTANCE);
 | |
|             } else {
 | |
|                 YieldContext yieldContext = new YieldContext();
 | |
|                 dispatchedContinuation.dispatchYield$kotlinx_coroutines_core(coroutineContext.plus(yieldContext), Unit.INSTANCE);
 | |
|                 if (yieldContext.dispatcherWasUnconfined) {
 | |
|                     coroutine_suspended = DispatchedContinuationKt.yieldUndispatched(dispatchedContinuation) ? IntrinsicsKt.getCOROUTINE_SUSPENDED() : Unit.INSTANCE;
 | |
|                 }
 | |
|             }
 | |
|             coroutine_suspended = IntrinsicsKt.getCOROUTINE_SUSPENDED();
 | |
|         }
 | |
|         if (coroutine_suspended == IntrinsicsKt.getCOROUTINE_SUSPENDED()) {
 | |
|             DebugProbesKt.probeCoroutineSuspended(continuation);
 | |
|         }
 | |
|         return coroutine_suspended == IntrinsicsKt.getCOROUTINE_SUSPENDED() ? coroutine_suspended : Unit.INSTANCE;
 | |
|     }
 | |
| }
 |