module SubZero::Socket::Sender

Public Instance Methods

call(request) click to toggle source
# File lib/sub_zero/socket/sender.rb, line 5
def call request
  response = nil
  t = request.options.fetch(:timeout, 1000) / 1000.0

  context do |c|
    socket c do |s|
      begin
        ::Timeout.timeout t do
          send_message s, request
          response = receive_message(s, request)
        end
      rescue ::Timeout::Error
        raise SubZero::Socket::TimeoutError, "call timeout after #{t}s"
      end
    end
  end

  response
end