module Async::IO
def self.buffer?
def self.buffer? ::IO.const_defined?(:Buffer) end
def self.file_descriptor_limit
def self.file_descriptor_limit Process.getrlimit(Process::RLIMIT_NOFILE).first end
def self.pipe
def self.pipe ::IO.pipe.map(&Generic.method(:new)) end
def self.try_convert(io, &block)
def self.try_convert(io, &block) if wrapper_class = Generic::WRAPPERS[io.class] wrapper_class.new(io, &block) else raise ArgumentError.new("Unsure how to wrap #{io.class}!") end end