gilmour 0.2.6 → 0.2.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gilmour/waiter.rb +6 -2
- data/test/spec/helpers/common.rb +6 -2
- data/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3bb536ca3fba5d81c5ab8ae282e7eeb3a6b1cefe
|
4
|
+
data.tar.gz: 543fd382d9c4e3176cab664c7a10fe839775740d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd60a017a32fb69becd5a751cb9a2f06189244cac16910638469168b3123611c1fe39c20913a81fedd54d8323d455b455f1fdb76da7a10ce5ae7f1c4406dc59d
|
7
|
+
data.tar.gz: 8816bde67db14712c95f62c3970308615a1d25d82ec63a8b26ac6fca18575a5be48f5ff7744039ceea664c3728888d8f8133c11b008e1d42d29647d697edefa2
|
data/lib/gilmour/waiter.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module Gilmour
|
2
2
|
class Waiter
|
3
3
|
def initialize
|
4
|
+
@done = false
|
4
5
|
@waiter_m = Mutex.new
|
5
6
|
@waiter_c = ConditionVariable.new
|
6
7
|
end
|
@@ -10,11 +11,14 @@ module Gilmour
|
|
10
11
|
end
|
11
12
|
|
12
13
|
def signal
|
13
|
-
synchronize
|
14
|
+
synchronize do
|
15
|
+
@done = true
|
16
|
+
@waiter_c.signal
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
20
|
def wait(timeout=nil)
|
17
|
-
synchronize { @waiter_c.wait(@waiter_m, timeout) }
|
21
|
+
synchronize { @waiter_c.wait(@waiter_m, timeout) unless @done }
|
18
22
|
end
|
19
23
|
end
|
20
24
|
end
|
data/test/spec/helpers/common.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
|
2
2
|
class Waiter
|
3
3
|
def initialize
|
4
|
+
@done = false
|
4
5
|
@waiter_m = Mutex.new
|
5
6
|
@waiter_c = ConditionVariable.new
|
6
7
|
end
|
@@ -10,11 +11,14 @@ class Waiter
|
|
10
11
|
end
|
11
12
|
|
12
13
|
def signal
|
13
|
-
synchronize
|
14
|
+
synchronize do
|
15
|
+
@done = true
|
16
|
+
@waiter_c.signal
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
20
|
def wait(timeout=nil)
|
17
|
-
synchronize { @waiter_c.wait(@waiter_m, timeout) }
|
21
|
+
synchronize { @waiter_c.wait(@waiter_m, timeout) unless @done }
|
18
22
|
end
|
19
23
|
end
|
20
24
|
|
data/version.rb
CHANGED