ADD week 5
This commit is contained in:
41
02-Easy5/E5/sources/kotlinx/coroutines/YieldKt.java
Normal file
41
02-Easy5/E5/sources/kotlinx/coroutines/YieldKt.java
Normal file
@ -0,0 +1,41 @@
|
||||
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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user