threadpool 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.
- data/lib/threadpool.rb +6 -19
- data/threadpool.gemspec +1 -1
- metadata +1 -1
data/lib/threadpool.rb
CHANGED
@@ -19,25 +19,13 @@ module Awakenable
|
|
19
19
|
@awakenable.first.read_nonblock 2048
|
20
20
|
rescue Errno::EAGAIN; end
|
21
21
|
|
22
|
-
|
23
|
-
IO.select([@awakenable.first], nil, nil, time)
|
24
|
-
|
25
|
-
true
|
26
|
-
rescue Interrupt
|
27
|
-
false
|
28
|
-
end
|
22
|
+
IO.select([@awakenable.first], nil, nil, time)
|
29
23
|
end
|
30
24
|
|
31
25
|
def wake_up
|
32
26
|
@awakenable ||= IO.pipe
|
33
27
|
|
34
|
-
|
35
|
-
@awakenable.last.write 'x'
|
36
|
-
|
37
|
-
true
|
38
|
-
rescue
|
39
|
-
false
|
40
|
-
end
|
28
|
+
@awakenable.last.write 'x'
|
41
29
|
end
|
42
30
|
end
|
43
31
|
|
@@ -63,8 +51,7 @@ class ThreadPool
|
|
63
51
|
|
64
52
|
@pool.wake_up
|
65
53
|
else
|
66
|
-
sleep
|
67
|
-
|
54
|
+
sleep unless die?
|
68
55
|
break if die?
|
69
56
|
end
|
70
57
|
end
|
@@ -123,11 +110,11 @@ class ThreadPool
|
|
123
110
|
|
124
111
|
@watcher.process {
|
125
112
|
loop do
|
126
|
-
sleep
|
127
|
-
next
|
113
|
+
sleep if @queue.empty?
|
114
|
+
next if @queue.empty?
|
128
115
|
|
129
116
|
begin
|
130
|
-
worker = @pool.find(&:available?) or sleep
|
117
|
+
worker = @pool.find(&:available?) or sleep
|
131
118
|
end until worker
|
132
119
|
|
133
120
|
break if die?
|
data/threadpool.gemspec
CHANGED