# File lib/mongo/util/tcp_socket.rb, line 43 def read(maxlen, buffer) # Block on data to read for @op_timeout seconds begin ready = IO.select([@socket], nil, [@socket], @op_timeout) unless ready raise OperationTimeout end rescue IOError raise ConnectionFailure end # Read data from socket begin @socket.sysread(maxlen, buffer) rescue SystemCallError, IOError => ex raise ConnectionFailure, ex end end