oni 4.3.0 → 4.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/oni/daemon.rb +8 -4
- data/lib/oni/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40eeae757bf8695a6f2ed1256ad7bdb670eb4e303f84519f55fcfa4958b8e948
|
4
|
+
data.tar.gz: 1152004d002543f7a5e838e6da6eba80cc92469b84b24916217071f42c40d0e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d242b9d34545a45d799a8fc244ea20060e76dc0dacaf972041a537ff8e3747ebeffd0be9df82ef894ece79e99f2a4bb9c2315314097d0d0310e0318ab51dc2df
|
7
|
+
data.tar.gz: 108854de0df628b2623b96f4cc4e6696f6eb4b14e0302e56d6e1ba237145cc788636d240171e3a0c85e21a9d9195502bc34fcf04fb44fe55784c378a9daac3ad
|
data/lib/oni/daemon.rb
CHANGED
@@ -58,7 +58,7 @@ module Oni
|
|
58
58
|
|
59
59
|
wthreads = if threads <= 1 then [run_thread]
|
60
60
|
elsif workers <= 1 then standard_worker
|
61
|
-
else wthreads = Array.new(workers)
|
61
|
+
else wthreads = Array.new(workers){ |i| spawn_worker i } end
|
62
62
|
|
63
63
|
after_start if respond_to? :after_start
|
64
64
|
|
@@ -79,6 +79,7 @@ module Oni
|
|
79
79
|
worker_threads.each(&:kill)
|
80
80
|
worker_threads.clear
|
81
81
|
end
|
82
|
+
exit
|
82
83
|
end
|
83
84
|
|
84
85
|
def workers
|
@@ -184,21 +185,24 @@ module Oni
|
|
184
185
|
#
|
185
186
|
# @return [Thread]
|
186
187
|
#
|
187
|
-
def spawn_worker
|
188
|
+
def spawn_worker name = nil, &block
|
188
189
|
Thread.new do
|
190
|
+
pid = nil
|
189
191
|
loop do # keep restarting for OOM and other cases
|
190
192
|
pid = fork do
|
191
|
-
Process.setproctitle "#{$0}: worker #{
|
193
|
+
Process.setproctitle "#{$0}: worker #{name}" if name
|
192
194
|
|
193
195
|
if block then yield else standard_worker end
|
194
196
|
end
|
195
197
|
Process.wait pid
|
196
198
|
end
|
199
|
+
ensure
|
200
|
+
Process.kill :KILL, pid
|
197
201
|
end
|
198
202
|
end
|
199
203
|
|
200
204
|
def standard_worker
|
201
|
-
Array.new(threads)
|
205
|
+
Array.new(threads) do
|
202
206
|
spawn_thread.tap{ |t| daemon_workers[Process.pid] << t }
|
203
207
|
end.each(&:join)
|
204
208
|
end
|
data/lib/oni/version.rb
CHANGED