frugal_timeout 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/frugal_timeout.rb +5 -6
  2. metadata +1 -1
@@ -14,8 +14,8 @@ module FrugalTimeout
14
14
 
15
15
  attr_reader :at, :thread
16
16
 
17
- def initialize thread, at
18
- @thread, @at = thread, at
17
+ def initialize thread, at, klass
18
+ @thread, @at, @klass = thread, at, klass
19
19
  end
20
20
 
21
21
  def <=>(other)
@@ -31,7 +31,7 @@ module FrugalTimeout
31
31
  end
32
32
 
33
33
  def enforceTimeout
34
- @thread.raise Error, 'execution expired' unless done?
34
+ @thread.raise @klass || Error, 'execution expired' unless done?
35
35
  end
36
36
  end
37
37
 
@@ -94,9 +94,8 @@ module FrugalTimeout
94
94
  }
95
95
  start = Time.now
96
96
  sleepFor ? sleep(sleepFor) : sleep
97
- slept = Time.now - start
98
97
  @sleeperMutex.synchronize {
99
- @in.push :expired if sleepFor && slept >= sleepFor
98
+ @in.push :expired if sleepFor && Time.now - start >= sleepFor
100
99
  }
101
100
  }
102
101
  }
@@ -119,7 +118,7 @@ module FrugalTimeout
119
118
  end
120
119
 
121
120
  def self.timeout t, klass=nil
122
- @in.push request = Request.new(Thread.current, Time.now + t)
121
+ @in.push request = Request.new(Thread.current, Time.now + t, klass)
123
122
  begin
124
123
  yield t
125
124
  ensure
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frugal_timeout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: