Class: Evt::Scheduler

Inherits:
Object
  • Object
show all
Defined in:
lib/evt/scheduler.rb

Overview

The major class for Ruby Fiber Scheduler

Examples:

scheduler = Evt::Scheduler.new
Fiber.set_scheduler scheduler
scheduler.run

Constant Summary collapse

BACKENDS =
[
  Evt::Uring,
  Evt::Epoll,
  Evt::Kqueue,
  Evt::Iocp,
  Evt::Select,
].freeze

Class Method Summary collapse

Class Method Details

.availablesObject

Returns all available backends on this machine



30
31
32
33
34
# File 'lib/evt/scheduler.rb', line 30

def availables
  BACKENDS.filter do |backend|
    backend.available?
  end
end

.newObject

Returns the fastest possible scheduler Use the backend scheduler directly if you want to choose it yourself



22
23
24
25
26
# File 'lib/evt/scheduler.rb', line 22

def new
  BACKENDS.each do |backend|
    return backend.new if backend.available?
  end
end