parallel_server 0.1.3 → 0.1.4
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.
- checksums.yaml +4 -4
- data/lib/parallel_server/prefork.rb +17 -15
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60f22791a70556733877e1abacd86ffc257fafd6
|
4
|
+
data.tar.gz: 66d5e90cdca52f41dc687cd160e54b8fb030f858
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d8e13cf7f83e1581706c0013f03e46cdec97490c9d2a13345fca178212201570d6b7836772555d7b8cb8b6ed1a6051a4f41985fe01d0a066bd5218dcb02a79b
|
7
|
+
data.tar.gz: 27f616dc7eab3d89a42faf45a48f3d2b9596ba43783855d19f8840b18675fa93ff8991961f15b735ec470423a8d3649a06b8c7e38c12e0227d2df711ed6bbeb6
|
@@ -34,9 +34,9 @@ module ParallelServer
|
|
34
34
|
host, port, opts = parse_args(*args)
|
35
35
|
@host, @port, @opts = host, port, opts
|
36
36
|
set_variables_from_opts
|
37
|
-
@from_child = {} # IO => pid
|
38
|
-
@to_child = {} #
|
39
|
-
@child_status = {} #
|
37
|
+
@from_child = {} # IO(r) => pid
|
38
|
+
@to_child = {} # IO(r) => IO(w)
|
39
|
+
@child_status = {} # IO(r) => Hash
|
40
40
|
@children = [] # pid
|
41
41
|
@loop = true
|
42
42
|
end
|
@@ -167,18 +167,17 @@ module ParallelServer
|
|
167
167
|
readable, = IO.select(rset, nil, nil, 0.1)
|
168
168
|
if readable
|
169
169
|
readable.each do |from_child|
|
170
|
-
pid = @from_child[from_child]
|
171
170
|
if st = Conversation.recv(from_child)
|
172
|
-
@child_status[
|
171
|
+
@child_status[from_child].update st
|
173
172
|
if st[:status] == :stop
|
174
|
-
@to_child[
|
175
|
-
@to_child.delete
|
173
|
+
@to_child[from_child].close rescue nil
|
174
|
+
@to_child.delete from_child
|
176
175
|
end
|
177
176
|
else
|
178
177
|
@from_child.delete from_child
|
179
|
-
@to_child[
|
180
|
-
@to_child.delete
|
181
|
-
@child_status.delete
|
178
|
+
@to_child[from_child].close rescue nil
|
179
|
+
@to_child.delete from_child
|
180
|
+
@child_status.delete from_child
|
182
181
|
from_child.close
|
183
182
|
end
|
184
183
|
end
|
@@ -242,13 +241,15 @@ module ParallelServer
|
|
242
241
|
to_child[1].close
|
243
242
|
@on_start.call if @on_start
|
244
243
|
Child.new(@sockets, @opts, from_child[1], to_child[0]).start(@block)
|
244
|
+
exit! true
|
245
245
|
end
|
246
246
|
from_child[1].close
|
247
247
|
to_child[0].close
|
248
|
-
|
249
|
-
@
|
248
|
+
r, w = from_child[0], to_child[1]
|
249
|
+
@from_child[r] = pid
|
250
|
+
@to_child[r] = w
|
251
|
+
@child_status[r] = {status: :run, connections: {}}
|
250
252
|
@children.push pid
|
251
|
-
@child_status[pid] = {status: :run, connections: {}}
|
252
253
|
@on_child_start.call(pid) if @on_child_start
|
253
254
|
end
|
254
255
|
|
@@ -334,7 +335,7 @@ module ParallelServer
|
|
334
335
|
@threads[thr] = addr
|
335
336
|
end
|
336
337
|
count += 1
|
337
|
-
break if count >= max_use
|
338
|
+
break if max_use > 0 && count >= max_use
|
338
339
|
end
|
339
340
|
ensure
|
340
341
|
@status = :stop
|
@@ -424,7 +425,8 @@ module ParallelServer
|
|
424
425
|
# @return [nil]
|
425
426
|
def accept
|
426
427
|
while true
|
427
|
-
|
428
|
+
timeout = max_idle > 0 ? max_idle : nil
|
429
|
+
readable, = IO.select(@sockets, nil, nil, timeout)
|
428
430
|
return nil unless readable
|
429
431
|
r, = readable
|
430
432
|
begin
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parallel_server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomita Masahiro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Parallel TCP Server library. This is easy to make Multi-Process / Multi-Thread
|
14
14
|
server
|