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
- .after_fork! ⇒ Object
- .cancel(token) ⇒ Object
-
.reset_for_test! ⇒ Object
Private testing seam for isolating process-wide scheduler state.
- .schedule(timeout) ⇒ Object
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 |