class Redis::Client
def set_socket_timeout!(timeout)
def set_socket_timeout!(timeout) secs = Integer(timeout) usecs = Integer((timeout - secs) * 1_000_000) optval = [secs, usecs].pack("l_2") begin @sock.setsockopt Socket::SOL_SOCKET, Socket::SO_RCVTIMEO, optval @sock.setsockopt Socket::SOL_SOCKET, Socket::SO_SNDTIMEO, optval rescue Exception => e # Solaris, for one, does not like/support socket timeouts. log("Unable to use raw socket timeouts: #{e.class.name}: #{e.message}") end end