From cb6a1d85f892a0b0febe39222b881b953cf1b4b1 Mon Sep 17 00:00:00 2001 From: Wesley Beary Date: Sat, 25 Jul 2009 18:05:49 -0700 Subject: [PATCH] adjustable max for eventually --- spec/spec_helper.rb | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index b4f5f4e5a..a0feaf57c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -48,14 +48,26 @@ def eu_s3 end end -def eventually(&block) - [0,2,4,8,16].each do |delay| +def eventually(max_delay = 16, &block) + delays = [0] + delay_step = 1 + total = 0 + while true + delay = 1 + delay_step.times do + delay *= 2 + end + delays << delay + delay_step += 1 + break if delay >= max_delay + end + delays.each do |delay| begin sleep(delay) yield break rescue => error - raise error if delay == 16 + raise error if delay >= max_delay end end end \ No newline at end of file