lib/ring/sqa/analyzer.rb in ring-sqa-0.1.1 vs lib/ring/sqa/analyzer.rb in ring-sqa-0.1.2
- old
+ new
@@ -15,9 +15,14 @@
sleep INFLIGHT_WAIT
records = records.all
@buffer.push records.map { |record| record.peer }
@buffer.exceed_median? ? @alarm.set(@buffer) : @alarm.clear(@buffer)
delay = INTERVAL-(Time.now-start)
+ # in case delay happens to be too big
+ if delay > INTERVAL
+ delay = INTERVAL
+ Log.warn "delay became larger than #{INTERVAL}, capping it. (did ntp just sync?)"
+ end
if delay > 0
sleep delay
else
Log.error "Analyzer loop took longer than #{INTERVAL}, wanted to sleep for #{delay}s"
end