diff --git a/lib/http/timeout/per_operation.rb b/lib/http/timeout/per_operation.rb index 0c625e2d..7a8f5f3f 100644 --- a/lib/http/timeout/per_operation.rb +++ b/lib/http/timeout/per_operation.rb @@ -29,7 +29,7 @@ def connect(socket_class, host, port, nodelay = false) def connect_ssl rescue_readable do rescue_writable do - socket.connect_nonblock + @socket.connect_nonblock end end end @@ -66,7 +66,7 @@ def readpartial(size) return result end - unless @socket.to_io.wait_readable(read_timeout) + unless IO.select([@socket], nil, nil, read_timeout) fail TimeoutError, "Read timed out after #{read_timeout} seconds" end end @@ -78,13 +78,12 @@ def write(data) result = @socket.write_nonblock(data, :exception => false) return result unless result == :wait_writable - unless @socket.to_io.wait_writable(write_timeout) + unless IO.select(nil, [@socket], nil, write_timeout) fail TimeoutError, "Write timed out after #{write_timeout} seconds" end end end end - # rubocop:enable Metrics/BlockNesting end end end