Class: Rx::DefaultScheduler
- Inherits:
-
LocalScheduler
- Object
- LocalScheduler
- Rx::DefaultScheduler
- Includes:
- PeriodicScheduler, Singleton
- Defined in:
- lib/rx/concurrency/default_scheduler.rb
Overview
Represents an object that schedules units of work on the platform’s default scheduler.
Instance Method Summary collapse
-
#schedule_relative_with_state(state, due_time, action) ⇒ Object
Schedules an action to be executed after dueTime.
-
#schedule_with_state(state, action) ⇒ Object
Schedules an action to be executed.
Methods included from PeriodicScheduler
#schedule_periodic, #schedule_periodic_with_state
Methods inherited from LocalScheduler
#now, #schedule_absolute_with_state
Methods included from Scheduler
normalize, now, #schedule, #schedule_absolute, #schedule_recursive, #schedule_recursive_absolute, #schedule_recursive_absolute_with_state, #schedule_recursive_relative, #schedule_recursive_relative_with_state, #schedule_recursive_with_state, #schedule_relative
Instance Method Details
#schedule_relative_with_state(state, due_time, action) ⇒ Object
Schedules an action to be executed after dueTime
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/rx/concurrency/default_scheduler.rb', line 33 def schedule_relative_with_state(state, due_time, action) raise 'action cannot be nil' unless action dt = Scheduler.normalize due_time return self.schedule_with_state state, action if dt == 0 d = SingleAssignmentSubscription.new t = Thread.new do sleep dt Thread.new { d.subscription = action.call self, state unless d.unsubscribed? } end CompositeSubscription.new [d, Subscription.create { t.exit }] end |
#schedule_with_state(state, action) ⇒ Object
Schedules an action to be executed.
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rx/concurrency/default_scheduler.rb', line 20 def schedule_with_state(state, action) raise 'action cannot be nil' unless action d = SingleAssignmentSubscription.new t = Thread.new do d.subscription = action.call self, state unless d.unsubscribed? end CompositeSubscription.new [d, Subscription.create { t.exit }] end |