# File lib/hiredis/ruby/connection.rb, line 122 def _write(sock, data, timeout) data.force_encoding("binary") if data.respond_to?(:force_encoding) begin nwritten = @sock.write_nonblock(data) while nwritten < string_size(data) data = data[nwritten..-1] nwritten = @sock.write_nonblock(data) end rescue Errno::EAGAIN if IO.select([], [@sock], [], timeout) # Writable, try again retry else # Timed out, raise raise Errno::EAGAIN end end end