Module: Julewire::Core::Scheduling::SharedScheduler

Defined in:
lib/julewire/core/scheduling/shared_scheduler.rb

Constant Summary collapse

THREAD_NAME =
"julewire-deadline-scheduler"

Class Method Summary collapse

Class Method Details

.after_fork!Object



22
23
24
25
26
27
# File 'lib/julewire/core/scheduling/shared_scheduler.rb', line 22

def after_fork!
  current = @scheduler
  @mutex = Mutex.new
  current&.after_fork!
  nil
end

.cancel(token) ⇒ Object



17
18
19
20
# File 'lib/julewire/core/scheduling/shared_scheduler.rb', line 17

def cancel(token)
  current = scheduler
  current.cancel(token)
end

.reset_for_test!Object

Private testing seam for isolating process-wide scheduler state.



30
31
32
33
# File 'lib/julewire/core/scheduling/shared_scheduler.rb', line 30

def reset_for_test!
  @mutex.synchronize { @scheduler = nil }
  nil
end

.schedule(timeout) ⇒ Object



12
13
14
15
# File 'lib/julewire/core/scheduling/shared_scheduler.rb', line 12

def schedule(timeout, &)
  current = scheduler
  current.schedule(timeout, &)
end