parallel_server 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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