module Dalli::Server::KSocket::InstanceMethods

Public Instance Methods

read_available() click to toggle source
# File lib/dalli/socket.rb, line 97
def read_available
  value = ''
  loop do
    begin
      value << read_nonblock(8196)
    rescue Errno::EAGAIN, Errno::EWOULDBLOCK
      break
    end
  end
  value
end
readfull(count) click to toggle source
# File lib/dalli/socket.rb, line 80
def readfull(count)
  value = ''
  begin
    loop do
      value << read_nonblock(count - value.bytesize)
      break if value.bytesize == count
    end
  rescue Errno::EAGAIN, Errno::EWOULDBLOCK
    if IO.select([self], nil, nil, options[:socket_timeout])
      retry
    else
      raise Timeout::Error, "IO timeout: #{options.inspect}"
    end
  end
  value
end