package io.reactivex.internal.schedulers; import io.reactivex.disposables.Disposable; import io.reactivex.internal.functions.Functions; import io.reactivex.schedulers.SchedulerRunnableIntrospection; import java.util.concurrent.Future; import java.util.concurrent.FutureTask; import java.util.concurrent.atomic.AtomicReference; /* loaded from: classes2.dex */ abstract class AbstractDirectTask extends AtomicReference> implements Disposable, SchedulerRunnableIntrospection { private static final long serialVersionUID = 1811839108042568751L; protected final Runnable runnable; protected Thread runner; protected static final FutureTask FINISHED = new FutureTask<>(Functions.b, null); protected static final FutureTask DISPOSED = new FutureTask<>(Functions.b, null); AbstractDirectTask(Runnable runnable) { this.runnable = runnable; } @Override // io.reactivex.disposables.Disposable public final void dispose() { FutureTask futureTask; Future future = get(); if (future == FINISHED || future == (futureTask = DISPOSED) || !compareAndSet(future, futureTask) || future == null) { return; } future.cancel(this.runner != Thread.currentThread()); } public Runnable getWrappedRunnable() { return this.runnable; } public final boolean isDisposed() { Future future = get(); return future == FINISHED || future == DISPOSED; } public final void setFuture(Future future) { Future future2; do { future2 = get(); if (future2 == FINISHED) { return; } if (future2 == DISPOSED) { future.cancel(this.runner != Thread.currentThread()); return; } } while (!compareAndSet(future2, future)); } }