package kotlinx.coroutines; import kotlin.Metadata; import kotlin.PublishedApi; import kotlin.Result; import kotlin.ResultKt; import kotlin.Unit; import kotlin.coroutines.Continuation; import kotlin.coroutines.CoroutineContext; import kotlin.jvm.functions.Function0; import kotlin.jvm.internal.InlineMarker; import kotlin.jvm.internal.Intrinsics; import kotlin.jvm.internal.SourceDebugExtension; import kotlinx.coroutines.internal.DispatchedContinuation; import kotlinx.coroutines.internal.ThreadContextKt; @Metadata(d1 = {"\u0000<\n\u0000\n\u0002\u0010\b\n\u0002\b\u0007\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010\u0003\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\u001a \u0010\f\u001a\u00020\r\"\u0004\b\u0000\u0010\u000e*\b\u0012\u0004\u0012\u0002H\u000e0\u000f2\u0006\u0010\u0010\u001a\u00020\u0001H\u0000\u001a.\u0010\u0011\u001a\u00020\r\"\u0004\b\u0000\u0010\u000e*\b\u0012\u0004\u0012\u0002H\u000e0\u000f2\f\u0010\u0012\u001a\b\u0012\u0004\u0012\u0002H\u000e0\u00132\u0006\u0010\u0014\u001a\u00020\tH\u0000\u001a\u0010\u0010\u0015\u001a\u00020\r*\u0006\u0012\u0002\b\u00030\u000fH\u0002\u001a\u0019\u0010\u0016\u001a\u00020\r*\u0006\u0012\u0002\b\u00030\u00132\u0006\u0010\u0017\u001a\u00020\u0018H\u0080\b\u001a'\u0010\u0019\u001a\u00020\r*\u0006\u0012\u0002\b\u00030\u000f2\u0006\u0010\u001a\u001a\u00020\u001b2\f\u0010\u001c\u001a\b\u0012\u0004\u0012\u00020\r0\u001dH\u0080\b\"\u000e\u0010\u0000\u001a\u00020\u0001X\u0080T¢\u0006\u0002\n\u0000\"\u0016\u0010\u0002\u001a\u00020\u00018\u0000X\u0081T¢\u0006\b\n\u0000\u0012\u0004\b\u0003\u0010\u0004\"\u000e\u0010\u0005\u001a\u00020\u0001X\u0080T¢\u0006\u0002\n\u0000\"\u000e\u0010\u0006\u001a\u00020\u0001X\u0080T¢\u0006\u0002\n\u0000\"\u000e\u0010\u0007\u001a\u00020\u0001X\u0080T¢\u0006\u0002\n\u0000\"\u0018\u0010\b\u001a\u00020\t*\u00020\u00018@X\u0080\u0004¢\u0006\u0006\u001a\u0004\b\b\u0010\n\"\u0018\u0010\u000b\u001a\u00020\t*\u00020\u00018@X\u0080\u0004¢\u0006\u0006\u001a\u0004\b\u000b\u0010\n¨\u0006\u001e"}, d2 = {"MODE_ATOMIC", "", "MODE_CANCELLABLE", "getMODE_CANCELLABLE$annotations", "()V", "MODE_CANCELLABLE_REUSABLE", "MODE_UNDISPATCHED", "MODE_UNINITIALIZED", "isCancellableMode", "", "(I)Z", "isReusableMode", "dispatch", "", "T", "Lkotlinx/coroutines/DispatchedTask;", "mode", "resume", "delegate", "Lkotlin/coroutines/Continuation;", "undispatched", "resumeUnconfined", "resumeWithStackTrace", "exception", "", "runUnconfinedEventLoop", "eventLoop", "Lkotlinx/coroutines/EventLoop;", "block", "Lkotlin/Function0;", "kotlinx-coroutines-core"}, k = 2, mv = {1, 9, 0}, xi = 48) @SourceDebugExtension({"SMAP\nDispatchedTask.kt\nKotlin\n*S Kotlin\n*F\n+ 1 DispatchedTask.kt\nkotlinx/coroutines/DispatchedTaskKt\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n+ 3 DispatchedContinuation.kt\nkotlinx/coroutines/internal/DispatchedContinuation\n+ 4 CoroutineContext.kt\nkotlinx/coroutines/CoroutineContextKt\n+ 5 StackTraceRecovery.kt\nkotlinx/coroutines/internal/StackTraceRecoveryKt\n*L\n1#1,222:1\n200#1,17:240\n1#2:223\n255#3:224\n256#3,2:235\n258#3:239\n107#4,10:225\n118#4,2:237\n61#5,2:257\n*S KotlinDebug\n*F\n+ 1 DispatchedTask.kt\nkotlinx/coroutines/DispatchedTaskKt\n*L\n190#1:240,17\n178#1:224\n178#1:235,2\n178#1:239\n178#1:225,10\n178#1:237,2\n220#1:257,2\n*E\n"}) /* loaded from: classes3.dex */ public final class DispatchedTaskKt { public static final int MODE_ATOMIC = 0; public static final int MODE_CANCELLABLE = 1; public static final int MODE_CANCELLABLE_REUSABLE = 2; public static final int MODE_UNDISPATCHED = 4; public static final int MODE_UNINITIALIZED = -1; public static final void dispatch(DispatchedTask dispatchedTask, int i) { Continuation delegate$kotlinx_coroutines_core = dispatchedTask.getDelegate$kotlinx_coroutines_core(); boolean z3 = i == 4; if (z3 || !(delegate$kotlinx_coroutines_core instanceof DispatchedContinuation) || isCancellableMode(i) != isCancellableMode(dispatchedTask.resumeMode)) { resume(dispatchedTask, delegate$kotlinx_coroutines_core, z3); return; } CoroutineDispatcher coroutineDispatcher = ((DispatchedContinuation) delegate$kotlinx_coroutines_core).dispatcher; CoroutineContext coroutineContext = delegate$kotlinx_coroutines_core.get$context(); if (coroutineDispatcher.isDispatchNeeded(coroutineContext)) { coroutineDispatcher.mo1685dispatch(coroutineContext, dispatchedTask); } else { resumeUnconfined(dispatchedTask); } } @PublishedApi public static /* synthetic */ void getMODE_CANCELLABLE$annotations() { } public static final boolean isCancellableMode(int i) { return i == 1 || i == 2; } public static final boolean isReusableMode(int i) { return i == 2; } public static final void resume(DispatchedTask dispatchedTask, Continuation continuation, boolean z3) { Object successfulResult$kotlinx_coroutines_core; Object takeState$kotlinx_coroutines_core = dispatchedTask.takeState$kotlinx_coroutines_core(); Throwable exceptionalResult$kotlinx_coroutines_core = dispatchedTask.getExceptionalResult$kotlinx_coroutines_core(takeState$kotlinx_coroutines_core); if (exceptionalResult$kotlinx_coroutines_core != null) { Result.Companion companion = Result.INSTANCE; successfulResult$kotlinx_coroutines_core = ResultKt.createFailure(exceptionalResult$kotlinx_coroutines_core); } else { Result.Companion companion2 = Result.INSTANCE; successfulResult$kotlinx_coroutines_core = dispatchedTask.getSuccessfulResult$kotlinx_coroutines_core(takeState$kotlinx_coroutines_core); } Object m116constructorimpl = Result.m116constructorimpl(successfulResult$kotlinx_coroutines_core); if (!z3) { continuation.resumeWith(m116constructorimpl); return; } Intrinsics.checkNotNull(continuation, "null cannot be cast to non-null type kotlinx.coroutines.internal.DispatchedContinuation"); DispatchedContinuation dispatchedContinuation = (DispatchedContinuation) continuation; Continuation continuation2 = dispatchedContinuation.continuation; Object obj = dispatchedContinuation.countOrElement; CoroutineContext coroutineContext = continuation2.get$context(); Object updateThreadContext = ThreadContextKt.updateThreadContext(coroutineContext, obj); UndispatchedCoroutine updateUndispatchedCompletion = updateThreadContext != ThreadContextKt.NO_THREAD_ELEMENTS ? CoroutineContextKt.updateUndispatchedCompletion(continuation2, coroutineContext, updateThreadContext) : null; try { dispatchedContinuation.continuation.resumeWith(m116constructorimpl); Unit unit = Unit.INSTANCE; if (updateUndispatchedCompletion == null || updateUndispatchedCompletion.clearThreadContext()) { ThreadContextKt.restoreThreadContext(coroutineContext, updateThreadContext); } } catch (Throwable th) { if (updateUndispatchedCompletion == null || updateUndispatchedCompletion.clearThreadContext()) { ThreadContextKt.restoreThreadContext(coroutineContext, updateThreadContext); } throw th; } } private static final void resumeUnconfined(DispatchedTask dispatchedTask) { EventLoop eventLoop$kotlinx_coroutines_core = ThreadLocalEventLoop.INSTANCE.getEventLoop$kotlinx_coroutines_core(); if (eventLoop$kotlinx_coroutines_core.isUnconfinedLoopActive()) { eventLoop$kotlinx_coroutines_core.dispatchUnconfined(dispatchedTask); return; } eventLoop$kotlinx_coroutines_core.incrementUseCount(true); try { resume(dispatchedTask, dispatchedTask.getDelegate$kotlinx_coroutines_core(), true); do { } while (eventLoop$kotlinx_coroutines_core.processUnconfinedEvent()); } finally { try { } finally { } } } public static final void resumeWithStackTrace(Continuation continuation, Throwable th) { Result.Companion companion = Result.INSTANCE; continuation.resumeWith(Result.m116constructorimpl(ResultKt.createFailure(th))); } public static final void runUnconfinedEventLoop(DispatchedTask dispatchedTask, EventLoop eventLoop, Function0 function0) { eventLoop.incrementUseCount(true); try { function0.invoke(); do { } while (eventLoop.processUnconfinedEvent()); } catch (Throwable th) { try { dispatchedTask.handleFatalException$kotlinx_coroutines_core(th, null); } finally { InlineMarker.finallyStart(1); eventLoop.decrementUseCount(true); InlineMarker.finallyEnd(1); } } } }