Class: Evt::Select

Inherits:
Bundled show all
Defined in:
lib/evt/backends/select.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, #io_wait, #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



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

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

.backendObject



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

def self.backend
  self.select_backend
end

Instance Method Details

#deregister(io) ⇒ Object



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

def deregister(io)
end

#init_selectorObject



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

def init_selector
  # Select is stateless
end

#register(io, interest) ⇒ Object



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

def register(io, interest)
  # Select is stateless
end

#waitObject



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

def wait
  select_wait
rescue IOError => _
  collect(true)
  return [], []
rescue Errno::EBADF => _
  collect(true)
  return [], []
end