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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/parallel_server/prefork.rb +17 -15
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 53f28860a0d7d10e6e37f34c79c612b451fb1071
4
- data.tar.gz: 73f2343779c6db95c2444fef17b207a883e463ad
3
+ metadata.gz: 60f22791a70556733877e1abacd86ffc257fafd6
4
+ data.tar.gz: 66d5e90cdca52f41dc687cd160e54b8fb030f858
5
5
  SHA512:
6
- metadata.gz: 1f8cada5754f3dd15479e5b9be04dff99d3da70b4bccea3ef3ee848c7e1f3d56c25f86234cac44e9f3147df6cf9fed93d9595ec75515d610c04eae9fa868b64f
7
- data.tar.gz: 3df445fb613a4a12e3f145d7e89937e5848c48145d5cfe467345884a748a5d93c8048806bc681410e61a7f25ca4440c32e6a80d2ec9a77dc9c905802bfcecbcf
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 = {} # pid => IO
39
- @child_status = {} # pid => Hash
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[pid].update st
171
+ @child_status[from_child].update st
173
172
  if st[:status] == :stop
174
- @to_child[pid].close rescue nil
175
- @to_child.delete pid
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[pid].close rescue nil
180
- @to_child.delete pid
181
- @child_status.delete pid
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
- @from_child[from_child[0]] = pid
249
- @to_child[pid] = to_child[1]
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
- readable, = IO.select(@sockets, nil, nil, max_idle)
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.3
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-03-25 00:00:00.000000000 Z
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