Class: RollingTimeout

Inherits:
Object
  • Object
show all
Defined in:
lib/rolling_timeout.rb,
lib/rolling_timeout/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Instance Method Summary collapse

Constructor Details

#initialize(time_in_seconds, &block) ⇒ RollingTimeout

Returns a new instance of RollingTimeout.



6
7
8
9
10
11
12
13
14
# File 'lib/rolling_timeout.rb', line 6

def initialize(time_in_seconds, &block)
  @time_in_seconds = time_in_seconds
  start
  @timed_out = false
  @code_thread = Thread.new{ yield self }
  @code_thread.join
  @timer_thread.join if @timed_out

end

Instance Method Details

#resetObject



16
17
18
19
# File 'lib/rolling_timeout.rb', line 16

def reset
  stop
  start
end

#startObject



25
26
27
# File 'lib/rolling_timeout.rb', line 25

def start
  @timer_thread = new_timer_thread
end

#stopObject



21
22
23
# File 'lib/rolling_timeout.rb', line 21

def stop
  @timer_thread.kill
end