Class: RxRuby::ImmediateScheduler

Inherits:
LocalScheduler show all
Includes:
Singleton
Defined in:
lib/rx_ruby/concurrency/immediate_scheduler.rb

Overview

Represents an object that schedules units of work to run immediately on the current thread.

Defined Under Namespace

Classes: AsyncLockScheduler

Instance Method Summary collapse

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



21
22
23
24
25
26
27
# File 'lib/rx_ruby/concurrency/immediate_scheduler.rb', line 21

def schedule_relative_with_state(state, due_time, action)
  raise ArgumentError.new 'action cannot be nil' unless action

  dt = RxRuby::Scheduler.normalize due_time
  sleep dt if dt > 0
  action.call AsyncLockScheduler.new, state
end

#schedule_with_state(state, action) ⇒ Object

Schedules an action to be executed.



16
17
18
19
# File 'lib/rx_ruby/concurrency/immediate_scheduler.rb', line 16

def schedule_with_state(state, action)
  raise ArgumentError.new 'action cannot be nil' unless action
  action.call AsyncLockScheduler.new, state
end