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>
DISPOSED
protected static java.util.concurrent.FutureTask<java.lang.Void>
FINISHED
protected boolean
interruptOnCancel
protected java.lang.Runnable
runnable
protected java.lang.Thread
runner
private static long
serialVersionUID
-
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 void
cancelFuture(java.util.concurrent.Future<?> future)
void
dispose()
Dispose the resource, the operation should be idempotent.java.lang.Runnable
getWrappedRunnable()
Returns the wrapped action.boolean
isDisposed()
Returns true if this resource has been disposed.void
setFuture(java.util.concurrent.Future<?> future)
java.lang.String
toString()
-
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:Disposable
Dispose the resource, the operation should be idempotent.- Specified by:
dispose
in interfaceDisposable
-
isDisposed
public final boolean isDisposed()
Description copied from interface:Disposable
Returns true if this resource has been disposed.- Specified by:
isDisposed
in 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:SchedulerRunnableIntrospection
Returns the wrapped action.- Specified by:
getWrappedRunnable
in interfaceSchedulerRunnableIntrospection
- Returns:
- the wrapped action. Cannot be null.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.util.concurrent.atomic.AtomicReference<java.util.concurrent.Future<?>>
-
-