# File lib/mongo/server/round_trip_time_averager.rb, line 33 def measure start = Time.now begin rv = yield rescue Exception => exc end last_round_trip_time = Time.now - start # If ismaster fails, we need to return the last round trip time # because it is used in the heartbeat failed SDAM event, # but we must not update the round trip time recorded in the server. unless exc @last_round_trip_time = last_round_trip_time update_average_round_trip_time end [rv, exc, last_round_trip_time, average_round_trip_time] end