class Reline::ANSI
Public Class Methods
select(read_ios = [], write_ios = [], error_ios = [], timeout = nil)
click to toggle source
# File lib/polyphony/adapters/irb.rb, line 7 def self.select(read_ios = [], write_ios = [], error_ios = [], timeout = nil) p [:select, read_ios] raise if read_ios.size > 1 raise if write_ios.size > 0 raise if error_ios.size > 0 fiber = Fiber.current timer = spin do sleep timeout fiber.cancel end read_ios.each do |io| Polyphony.backend_wait_io(io, false) return [io] end rescue Polyphony::Cancel return nil ensure timer.stop end