Rabbit-R1/android (non root)/java/sources/kotlinx/coroutines/DispatchedTask.java
2024-05-21 17:08:36 -04:00

133 lines
9.2 KiB
Java
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package kotlinx.coroutines;
import androidx.exifinterface.media.ExifInterface;
import io.sentry.SentryEvent;
import io.sentry.protocol.SentryThread;
import java.util.concurrent.CancellationException;
import kotlin.Metadata;
import kotlin.Result;
import kotlin.ResultKt;
import kotlin.Unit;
import kotlin.coroutines.Continuation;
import kotlin.coroutines.CoroutineContext;
import kotlin.coroutines.jvm.internal.CoroutineStackFrame;
import kotlin.jvm.internal.Intrinsics;
import kotlinx.coroutines.internal.DispatchedContinuation;
import kotlinx.coroutines.internal.StackTraceRecoveryKt;
import kotlinx.coroutines.internal.ThreadContextKt;
import kotlinx.coroutines.scheduling.Task;
import kotlinx.coroutines.scheduling.TaskContext;
/* compiled from: DispatchedTask.kt */
@Metadata(d1 = {"\u00004\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u0003\n\u0002\b\u000e\b \u0018\u0000*\u0006\b\u0000\u0010\u0001 \u00002\u00060\u0002j\u0002`\u0003B\r\u0012\u0006\u0010\u0004\u001a\u00020\u0005¢\u0006\u0002\u0010\u0006J\u001f\u0010\u000b\u001a\u00020\f2\b\u0010\r\u001a\u0004\u0018\u00010\u000e2\u0006\u0010\u000f\u001a\u00020\u0010H\u0010¢\u0006\u0002\b\u0011J\u0019\u0010\u0012\u001a\u0004\u0018\u00010\u00102\b\u0010\u0013\u001a\u0004\u0018\u00010\u000eH\u0010¢\u0006\u0002\b\u0014J\u001f\u0010\u0015\u001a\u0002H\u0001\"\u0004\b\u0001\u0010\u00012\b\u0010\u0013\u001a\u0004\u0018\u00010\u000eH\u0010¢\u0006\u0004\b\u0016\u0010\u0017J\u001a\u0010\u0018\u001a\u00020\f2\b\u0010\u0019\u001a\u0004\u0018\u00010\u00102\b\u0010\u001a\u001a\u0004\u0018\u00010\u0010J\u0006\u0010\u001b\u001a\u00020\fJ\u000f\u0010\u001c\u001a\u0004\u0018\u00010\u000eH ¢\u0006\u0002\b\u001dR\u0018\u0010\u0007\u001a\b\u0012\u0004\u0012\u00028\u00000\bX \u0004¢\u0006\u0006\u001a\u0004\b\t\u0010\nR\u0012\u0010\u0004\u001a\u00020\u00058\u0006@\u0006X\u0087\u000e¢\u0006\u0002\n\u0000¨\u0006\u001e"}, d2 = {"Lkotlinx/coroutines/DispatchedTask;", ExifInterface.GPS_DIRECTION_TRUE, "Lkotlinx/coroutines/scheduling/Task;", "Lkotlinx/coroutines/SchedulerTask;", "resumeMode", "", "(I)V", "delegate", "Lkotlin/coroutines/Continuation;", "getDelegate$kotlinx_coroutines_core", "()Lkotlin/coroutines/Continuation;", "cancelCompletedResult", "", "takenState", "", "cause", "", "cancelCompletedResult$kotlinx_coroutines_core", "getExceptionalResult", SentryThread.JsonKeys.STATE, "getExceptionalResult$kotlinx_coroutines_core", "getSuccessfulResult", "getSuccessfulResult$kotlinx_coroutines_core", "(Ljava/lang/Object;)Ljava/lang/Object;", "handleFatalException", SentryEvent.JsonKeys.EXCEPTION, "finallyException", "run", "takeState", "takeState$kotlinx_coroutines_core", "kotlinx-coroutines-core"}, k = 1, mv = {1, 8, 0}, xi = 48)
/* loaded from: classes3.dex */
public abstract class DispatchedTask<T> extends Task {
public int resumeMode;
public void cancelCompletedResult$kotlinx_coroutines_core(Object takenState, Throwable cause) {
}
public abstract Continuation<T> getDelegate$kotlinx_coroutines_core();
/* JADX WARN: Multi-variable type inference failed */
public <T> T getSuccessfulResult$kotlinx_coroutines_core(Object state) {
return state;
}
public abstract Object takeState$kotlinx_coroutines_core();
public DispatchedTask(int i) {
this.resumeMode = i;
}
public Throwable getExceptionalResult$kotlinx_coroutines_core(Object state) {
CompletedExceptionally completedExceptionally = state instanceof CompletedExceptionally ? (CompletedExceptionally) state : null;
if (completedExceptionally != null) {
return completedExceptionally.cause;
}
return null;
}
@Override // java.lang.Runnable
public final void run() {
Object m5698constructorimpl;
Object m5698constructorimpl2;
CancellationException cancellationException;
if (DebugKt.getASSERTIONS_ENABLED() && this.resumeMode == -1) {
throw new AssertionError();
}
TaskContext taskContext = this.taskContext;
try {
Continuation<T> delegate$kotlinx_coroutines_core = getDelegate$kotlinx_coroutines_core();
Intrinsics.checkNotNull(delegate$kotlinx_coroutines_core, "null cannot be cast to non-null type kotlinx.coroutines.internal.DispatchedContinuation<T of kotlinx.coroutines.DispatchedTask>");
DispatchedContinuation dispatchedContinuation = (DispatchedContinuation) delegate$kotlinx_coroutines_core;
Continuation<T> continuation = dispatchedContinuation.continuation;
Object obj = dispatchedContinuation.countOrElement;
CoroutineContext coroutineContext = continuation.get$context();
Object updateThreadContext = ThreadContextKt.updateThreadContext(coroutineContext, obj);
UndispatchedCoroutine<?> updateUndispatchedCompletion = updateThreadContext != ThreadContextKt.NO_THREAD_ELEMENTS ? CoroutineContextKt.updateUndispatchedCompletion(continuation, coroutineContext, updateThreadContext) : null;
try {
CoroutineContext coroutineContext2 = continuation.get$context();
Object takeState$kotlinx_coroutines_core = takeState$kotlinx_coroutines_core();
Throwable exceptionalResult$kotlinx_coroutines_core = getExceptionalResult$kotlinx_coroutines_core(takeState$kotlinx_coroutines_core);
Job job = (exceptionalResult$kotlinx_coroutines_core == null && DispatchedTaskKt.isCancellableMode(this.resumeMode)) ? (Job) coroutineContext2.get(Job.INSTANCE) : null;
if (job != null && !job.isActive()) {
CancellationException cancellationException2 = job.getCancellationException();
cancelCompletedResult$kotlinx_coroutines_core(takeState$kotlinx_coroutines_core, cancellationException2);
Result.Companion companion = Result.INSTANCE;
if (DebugKt.getRECOVER_STACK_TRACES() && (continuation instanceof CoroutineStackFrame)) {
cancellationException = StackTraceRecoveryKt.recoverFromStackFrame(cancellationException2, (CoroutineStackFrame) continuation);
continuation.resumeWith(Result.m5698constructorimpl(ResultKt.createFailure(cancellationException)));
}
cancellationException = cancellationException2;
continuation.resumeWith(Result.m5698constructorimpl(ResultKt.createFailure(cancellationException)));
} else if (exceptionalResult$kotlinx_coroutines_core != null) {
Result.Companion companion2 = Result.INSTANCE;
continuation.resumeWith(Result.m5698constructorimpl(ResultKt.createFailure(exceptionalResult$kotlinx_coroutines_core)));
} else {
Result.Companion companion3 = Result.INSTANCE;
continuation.resumeWith(Result.m5698constructorimpl(getSuccessfulResult$kotlinx_coroutines_core(takeState$kotlinx_coroutines_core)));
}
Unit unit = Unit.INSTANCE;
try {
Result.Companion companion4 = Result.INSTANCE;
DispatchedTask<T> dispatchedTask = this;
taskContext.afterTask();
m5698constructorimpl2 = Result.m5698constructorimpl(Unit.INSTANCE);
} catch (Throwable th) {
Result.Companion companion5 = Result.INSTANCE;
m5698constructorimpl2 = Result.m5698constructorimpl(ResultKt.createFailure(th));
}
handleFatalException(null, Result.m5701exceptionOrNullimpl(m5698constructorimpl2));
} finally {
if (updateUndispatchedCompletion == null || updateUndispatchedCompletion.clearThreadContext()) {
ThreadContextKt.restoreThreadContext(coroutineContext, updateThreadContext);
}
}
} catch (Throwable th2) {
try {
Result.Companion companion6 = Result.INSTANCE;
taskContext.afterTask();
m5698constructorimpl = Result.m5698constructorimpl(Unit.INSTANCE);
} catch (Throwable th3) {
Result.Companion companion7 = Result.INSTANCE;
m5698constructorimpl = Result.m5698constructorimpl(ResultKt.createFailure(th3));
}
handleFatalException(th2, Result.m5701exceptionOrNullimpl(m5698constructorimpl));
}
}
public final void handleFatalException(Throwable exception, Throwable finallyException) {
if (exception == null && finallyException == null) {
return;
}
if (exception != null && finallyException != null) {
kotlin.ExceptionsKt.addSuppressed(exception, finallyException);
}
if (exception == null) {
exception = finallyException;
}
Intrinsics.checkNotNull(exception);
CoroutineExceptionHandlerKt.handleCoroutineException(getDelegate$kotlinx_coroutines_core().get$context(), new CoroutinesInternalError("Fatal exception in coroutines machinery for " + this + ". Please read KDoc to 'handleFatalException' method and report this incident to maintainers", exception));
}
}