Rabbit-R1/android (non root)/java/sources/kotlinx/coroutines/EventLoopKt.java

43 lines
2.3 KiB
Java
Raw Permalink Normal View History

2024-05-21 16:08:36 -05:00
package kotlinx.coroutines;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlinx.coroutines.scheduling.CoroutineScheduler;
/* compiled from: EventLoop.kt */
@Metadata(d1 = {"\u0000&\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\t\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\u0018\u0002\n\u0000\u001a\b\u0010\u0000\u001a\u00020\u0001H\u0000\u001a\u0019\u0010\u0002\u001a\u00020\u00032\u000e\b\u0004\u0010\u0004\u001a\b\u0012\u0004\u0012\u00020\u00030\u0005H\u0080\b\u001a\b\u0010\u0006\u001a\u00020\u0007H\u0007\u001a\b\u0010\b\u001a\u00020\u0007H\u0001\u001a\f\u0010\t\u001a\u00020\n*\u00020\u000bH\u0001¨\u0006\f"}, d2 = {"createEventLoop", "Lkotlinx/coroutines/EventLoop;", "platformAutoreleasePool", "", "block", "Lkotlin/Function0;", "processNextEventInCurrentThread", "", "runSingleTaskFromCurrentSystemDispatcher", "isIoDispatcherThread", "", "Ljava/lang/Thread;", "kotlinx-coroutines-core"}, k = 2, mv = {1, 8, 0}, xi = 48)
/* loaded from: classes3.dex */
public final class EventLoopKt {
public static final EventLoop createEventLoop() {
return new BlockingEventLoop(Thread.currentThread());
}
public static final long processNextEventInCurrentThread() {
EventLoop currentOrNull$kotlinx_coroutines_core = ThreadLocalEventLoop.INSTANCE.currentOrNull$kotlinx_coroutines_core();
if (currentOrNull$kotlinx_coroutines_core != null) {
return currentOrNull$kotlinx_coroutines_core.processNextEvent();
}
return Long.MAX_VALUE;
}
public static final void platformAutoreleasePool(Function0<Unit> function0) {
function0.invoke();
}
public static final long runSingleTaskFromCurrentSystemDispatcher() {
Thread currentThread = Thread.currentThread();
if (!(currentThread instanceof CoroutineScheduler.Worker)) {
throw new IllegalStateException("Expected CoroutineScheduler.Worker, but got " + currentThread);
}
return ((CoroutineScheduler.Worker) currentThread).runSingleTask();
}
public static final boolean isIoDispatcherThread(Thread thread) {
if (thread instanceof CoroutineScheduler.Worker) {
return ((CoroutineScheduler.Worker) thread).isIo();
}
return false;
}
}