Class: RubyGo::Timeout
- Inherits:
-
Object
- Object
- RubyGo::Timeout
- Defined in:
- lib/ruby_go/timeout.rb
Instance Attribute Summary collapse
-
#timeout_at ⇒ Object
readonly
Returns the value of attribute timeout_at.
Instance Method Summary collapse
-
#initialize(seconds) ⇒ Timeout
constructor
A new instance of Timeout.
- #pop(non_block = true) ⇒ Object
Constructor Details
#initialize(seconds) ⇒ Timeout
Returns a new instance of Timeout.
4 5 6 7 8 |
# File 'lib/ruby_go/timeout.rb', line 4 def initialize(seconds) @mutex = Mutex.new @timeout = false @timeout_at = Time.now() + seconds end |
Instance Attribute Details
#timeout_at ⇒ Object (readonly)
Returns the value of attribute timeout_at.
2 3 4 |
# File 'lib/ruby_go/timeout.rb', line 2 def timeout_at @timeout_at end |
Instance Method Details
#pop(non_block = true) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/ruby_go/timeout.rb', line 10 def pop(non_block = true) return true if @timeout @mutex.synchronize do diff = @timeout_at - Time.now() @timeout = true if diff <= 0 end if @timeout true else raise ThreadError end end |