Class ExecutorScheduler.ExecutorWorker
java.lang.Object
io.reactivex.rxjava3.core.Scheduler.Worker
io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler.ExecutorWorker
- All Implemented Interfaces:
Disposable
,Runnable
- Enclosing class:
ExecutorScheduler
public static final class ExecutorScheduler.ExecutorWorker
extends Scheduler.Worker
implements Runnable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final class
(package private) static final class
Wrapper for aRunnable
with additional logic for handling interruption on a shared thread, similar to how Java Executors do it.(package private) final class
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) boolean
(package private) final Executor
(package private) final boolean
(package private) final boolean
(package private) final MpscLinkedQueue
<Runnable> (package private) final CompositeDisposable
(package private) final AtomicInteger
-
Constructor Summary
ConstructorsConstructorDescriptionExecutorWorker
(Executor executor, boolean interruptibleWorker, boolean fair) -
Method Summary
Modifier and TypeMethodDescriptionvoid
dispose()
Dispose the resource, the operation should be idempotent.boolean
Returns true if this resource has been disposed.void
run()
(package private) void
runEager()
(package private) void
runFair()
Schedules a Runnable for execution without any time delay.Schedules an Runnable for execution at some point in the future specified by a time delay relative to the current time.Methods inherited from class io.reactivex.rxjava3.core.Scheduler.Worker
now, schedulePeriodically
-
Field Details
-
interruptibleWorker
final boolean interruptibleWorker -
fair
final boolean fair -
executor
-
queue
-
disposed
volatile boolean disposed -
wip
-
tasks
-
-
Constructor Details
-
ExecutorWorker
-
-
Method Details
-
schedule
Description copied from class:Scheduler.Worker
Schedules a Runnable for execution without any time delay.The default implementation delegates to
Scheduler.Worker.schedule(Runnable, long, TimeUnit)
.- Overrides:
schedule
in classScheduler.Worker
- Parameters:
run
- Runnable to schedule- Returns:
- a Disposable to be able to unsubscribe the action (cancel it if not executed)
-
schedule
@NonNull public @NonNull Disposable schedule(@NonNull @NonNull Runnable run, long delay, @NonNull @NonNull TimeUnit unit) Description copied from class:Scheduler.Worker
Schedules an Runnable for execution at some point in the future specified by a time delay relative to the current time.Note to implementors: non-positive
delayTime
should be regarded as non-delayed schedule, i.e., as if theScheduler.Worker.schedule(Runnable)
was called.- Specified by:
schedule
in classScheduler.Worker
- Parameters:
run
- the Runnable to scheduledelay
- time to "wait" before executing the action; non-positive values indicate an non-delayed scheduleunit
- the time unit ofdelayTime
- Returns:
- a Disposable to be able to unsubscribe the action (cancel it if not executed)
-
dispose
public void dispose()Description copied from interface:Disposable
Dispose the resource, the operation should be idempotent.- Specified by:
dispose
in interfaceDisposable
-
isDisposed
public 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
-
run
public void run() -
runFair
void runFair() -
runEager
void runEager()
-