future-resource 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +3 -0
- data/lib/future-resource/version.rb +1 -1
- data/lib/future-resource.rb +7 -4
- metadata +1 -1
data/CHANGELOG.md
CHANGED
data/lib/future-resource.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "thread"
|
2
2
|
require "monitor"
|
3
|
+
require "timeout"
|
3
4
|
|
4
5
|
class FutureResource
|
5
6
|
def initialize
|
@@ -11,10 +12,12 @@ class FutureResource
|
|
11
12
|
!!@resource_lock.synchronize { defined? @resource }
|
12
13
|
end
|
13
14
|
|
14
|
-
def resource
|
15
|
-
|
16
|
-
@
|
17
|
-
|
15
|
+
def resource(timeout = nil)
|
16
|
+
Timeout::timeout timeout do
|
17
|
+
@resource_lock.synchronize do
|
18
|
+
@resource_value_blocker.wait unless defined? @resource
|
19
|
+
@resource
|
20
|
+
end
|
18
21
|
end
|
19
22
|
end
|
20
23
|
|