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
35 36 37 38 39 40 |
# File 'lib/julewire/core/scheduling/shared_scheduler.rb', line 35 def after_fork! previous = @scheduler @scheduler = build_scheduler previous.kill nil end |
.cancel(task) ⇒ Object
30 31 32 33 |
# File 'lib/julewire/core/scheduling/shared_scheduler.rb', line 30 def cancel(task) task&.cancel nil end |
.schedule(timeout, &block) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/julewire/core/scheduling/shared_scheduler.rb', line 15 def schedule(timeout, &block) raise ArgumentError, "block required" unless block timeout = Float(timeout) if timeout <= 0 yield return end @scheduler.post(timeout) do Thread.current.name = THREAD_NAME yield end end |