Parent

Class/Module Index [+]

Quicksearch

IO

Public Instance Methods

close_on_exec!() click to toggle source
# File lib/phusion_passenger/ruby_core_enhancements.rb, line 128
def close_on_exec!
        self.close_on_exec = true
end
writev(components) click to toggle source

Writes all of the strings in the components array into the given file descriptor using the +writev()+ system call. Unlike IO#write, this method does not require one to concatenate all those strings into a single buffer in order to send the data in a single system call. Thus, writev is a great way to perform zero-copy I/O.

Unlike the raw writev() system call, this method ensures that all given data is written before returning, by performing multiple writev() calls and whatever else is necessary.

io.writev(["hello ", "world", "\n"])
# File lib/phusion_passenger/ruby_core_enhancements.rb, line 75
def writev(components)
        return PhusionPassenger::NativeSupport.writev(fileno, components)
end
writev2(components, components2) click to toggle source

Like writev, but accepts two arrays. The data is written in the given order.

io.writev2(["hello ", "world", "\n"], ["another ", "message\n"])
# File lib/phusion_passenger/ruby_core_enhancements.rb, line 82
def writev2(components, components2)
        return PhusionPassenger::NativeSupport.writev2(fileno,
                components, components2)
end
writev3(components, components2, components3) click to toggle source

Like writev, but accepts three arrays. The data is written in the given order.

io.writev3(["hello ", "world", "\n"],
  ["another ", "message\n"],
  ["yet ", "another ", "one", "\n"])
# File lib/phusion_passenger/ruby_core_enhancements.rb, line 92
def writev3(components, components2, components3)
        return PhusionPassenger::NativeSupport.writev3(fileno,
                components, components2, components3)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.