Package rx.internal.schedulers
Class ExecutorScheduler.ExecutorSchedulerWorker
- java.lang.Object
-
- rx.Scheduler.Worker
-
- rx.internal.schedulers.ExecutorScheduler.ExecutorSchedulerWorker
-
- All Implemented Interfaces:
java.lang.Runnable,Subscription
- Enclosing class:
- ExecutorScheduler
static final class ExecutorScheduler.ExecutorSchedulerWorker extends Scheduler.Worker implements java.lang.Runnable
Worker that schedules tasks on the executor indirectly through a trampoline mechanism.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.concurrent.Executorexecutor(package private) java.util.concurrent.ConcurrentLinkedQueue<ScheduledAction>queue(package private) java.util.concurrent.ScheduledExecutorServiceservice(package private) CompositeSubscriptiontasks(package private) java.util.concurrent.atomic.AtomicIntegerwip
-
Constructor Summary
Constructors Constructor Description ExecutorSchedulerWorker(java.util.concurrent.Executor executor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanisUnsubscribed()Indicates whether thisSubscriptionis currently unsubscribed.voidrun()Subscriptionschedule(Action0 action)Schedules an Action for execution.Subscriptionschedule(Action0 action, long delayTime, java.util.concurrent.TimeUnit unit)Schedules an Action for execution at some point in the future.voidunsubscribe()Stops the receipt of notifications on theSubscriberthat was registered when this Subscription was received.-
Methods inherited from class rx.Scheduler.Worker
now, schedulePeriodically
-
-
-
-
Field Detail
-
executor
final java.util.concurrent.Executor executor
-
tasks
final CompositeSubscription tasks
-
queue
final java.util.concurrent.ConcurrentLinkedQueue<ScheduledAction> queue
-
wip
final java.util.concurrent.atomic.AtomicInteger wip
-
service
final java.util.concurrent.ScheduledExecutorService service
-
-
Method Detail
-
schedule
public Subscription schedule(Action0 action)
Description copied from class:Scheduler.WorkerSchedules an Action for execution.- Specified by:
schedulein classScheduler.Worker- Parameters:
action- Action to schedule- Returns:
- a subscription to be able to unsubscribe the action (unschedule it if not executed)
-
run
public void run()
- Specified by:
runin interfacejava.lang.Runnable
-
schedule
public Subscription schedule(Action0 action, long delayTime, java.util.concurrent.TimeUnit unit)
Description copied from class:Scheduler.WorkerSchedules an Action for execution at some point in the future.Note to implementors: non-positive
delayTimeshould be regarded as undelayed schedule, i.e., as if theScheduler.Worker.schedule(rx.functions.Action0)was called.- Specified by:
schedulein classScheduler.Worker- Parameters:
action- the Action to scheduledelayTime- time to wait before executing the action; non-positive values indicate an undelayed scheduleunit- the time unit ofdelayTime- Returns:
- a subscription to be able to unsubscribe the action (unschedule it if not executed)
-
isUnsubscribed
public boolean isUnsubscribed()
Description copied from interface:SubscriptionIndicates whether thisSubscriptionis currently unsubscribed.- Specified by:
isUnsubscribedin interfaceSubscription- Returns:
trueif thisSubscriptionis currently unsubscribed,falseotherwise
-
unsubscribe
public void unsubscribe()
Description copied from interface:SubscriptionStops the receipt of notifications on theSubscriberthat was registered when this Subscription was received.This allows unregistering an
Subscriberbefore it has finished receiving all events (i.e. before onCompleted is called).- Specified by:
unsubscribein interfaceSubscription
-
-