Class: Evt::Epoll

Inherits:
Bundled show all
Defined in:
lib/evt/backends/epoll.rb

Constant Summary

Constants inherited from Bundled

Bundled::COLLECT_COUNTER_MAX, Bundled::MAXIMUM_TIMEOUT

Instance Attribute Summary

Attributes inherited from Bundled

#readable, #waiting, #writable

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Bundled

#block, #close, #collect, #current_time, epoll_backend, #epoll_deregister, #epoll_init_selector, #epoll_register, #epoll_wait, #fiber, #initialize, #kernel_sleep, kqueue_backend, #kqueue_init_selector, #kqueue_register, #kqueue_wait, #next_timeout, #run, select_backend, #select_wait, #unblock, uring_backend, #uring_init_selector, #uring_io_read, #uring_io_write, #uring_register, #uring_wait

Constructor Details

This class inherits a constructor from Evt::Bundled

Class Method Details

.available?Boolean

Returns:

  • (Boolean)


4
5
6
# File 'lib/evt/backends/epoll.rb', line 4

def self.available?
  self.respond_to?(:epoll_backend)
end

.backendObject



8
9
10
# File 'lib/evt/backends/epoll.rb', line 8

def self.backend
  self.epoll_backend
end

Instance Method Details

#deregister(io) ⇒ Object



20
21
22
# File 'lib/evt/backends/epoll.rb', line 20

def deregister(io)
  epoll_deregister(io)
end

#init_selectorObject



12
13
14
# File 'lib/evt/backends/epoll.rb', line 12

def init_selector
  epoll_init_selector
end

#io_wait(io, events, duration) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/evt/backends/epoll.rb', line 24

def io_wait(io, events, duration)
  @iovs[io] = Fiber.current
  self.register(io, events)
  Fiber.yield
  self.deregister(io)
  true
end

#register(io, interest) ⇒ Object



16
17
18
# File 'lib/evt/backends/epoll.rb', line 16

def register(io, interest)
  epoll_register(io, interest)
end

#waitObject

finished end



74
75
76
# File 'lib/evt/backends/epoll.rb', line 74

def wait
  epoll_wait
end