Class AbstractDirectTask
- java.lang.Object
-
- java.util.concurrent.atomic.AtomicReference<java.util.concurrent.Future<?>>
-
- io.reactivex.rxjava3.internal.schedulers.AbstractDirectTask
-
- All Implemented Interfaces:
Disposable,SchedulerRunnableIntrospection,java.io.Serializable
- Direct Known Subclasses:
ScheduledDirectPeriodicTask,ScheduledDirectTask
abstract class AbstractDirectTask extends java.util.concurrent.atomic.AtomicReference<java.util.concurrent.Future<?>> implements Disposable, SchedulerRunnableIntrospection
Base functionality for direct tasks that manage a runnable and cancellation/completion.- Since:
- 2.0.8
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.util.concurrent.FutureTask<java.lang.Void>DISPOSEDprotected static java.util.concurrent.FutureTask<java.lang.Void>FINISHEDprotected booleaninterruptOnCancelprotected java.lang.Runnablerunnableprotected java.lang.Threadrunnerprivate static longserialVersionUID
-
Constructor Summary
Constructors Constructor Description AbstractDirectTask(java.lang.Runnable runnable, boolean interruptOnCancel)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidcancelFuture(java.util.concurrent.Future<?> future)voiddispose()Dispose the resource, the operation should be idempotent.java.lang.RunnablegetWrappedRunnable()Returns the wrapped action.booleanisDisposed()Returns true if this resource has been disposed.voidsetFuture(java.util.concurrent.Future<?> future)java.lang.StringtoString()-
Methods inherited from class java.util.concurrent.atomic.AtomicReference
accumulateAndGet, compareAndExchange, compareAndExchangeAcquire, compareAndExchangeRelease, compareAndSet, get, getAcquire, getAndAccumulate, getAndSet, getAndUpdate, getOpaque, getPlain, lazySet, set, setOpaque, setPlain, setRelease, updateAndGet, weakCompareAndSet, weakCompareAndSetAcquire, weakCompareAndSetPlain, weakCompareAndSetRelease, weakCompareAndSetVolatile
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
runnable
protected final java.lang.Runnable runnable
-
interruptOnCancel
protected final boolean interruptOnCancel
-
runner
protected java.lang.Thread runner
-
FINISHED
protected static final java.util.concurrent.FutureTask<java.lang.Void> FINISHED
-
DISPOSED
protected static final java.util.concurrent.FutureTask<java.lang.Void> DISPOSED
-
-
Method Detail
-
dispose
public final void dispose()
Description copied from interface:DisposableDispose the resource, the operation should be idempotent.- Specified by:
disposein interfaceDisposable
-
isDisposed
public final boolean isDisposed()
Description copied from interface:DisposableReturns true if this resource has been disposed.- Specified by:
isDisposedin interfaceDisposable- Returns:
- true if this resource has been disposed
-
setFuture
public final void setFuture(java.util.concurrent.Future<?> future)
-
cancelFuture
private void cancelFuture(java.util.concurrent.Future<?> future)
-
getWrappedRunnable
public java.lang.Runnable getWrappedRunnable()
Description copied from interface:SchedulerRunnableIntrospectionReturns the wrapped action.- Specified by:
getWrappedRunnablein interfaceSchedulerRunnableIntrospection- Returns:
- the wrapped action. Cannot be null.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.util.concurrent.atomic.AtomicReference<java.util.concurrent.Future<?>>
-
-