parallel_server 0.1.6.1 → 0.1.6.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6a136c01524742c7fcd509a8ce2079fa2896b973
4
- data.tar.gz: 23337bf0c6f2bddd6f456aa1bf8f5ef2f3f448f8
2
+ SHA256:
3
+ metadata.gz: 23dd74db75038a029e405316917af36ee77feea0647aeaacf808798e3695cee5
4
+ data.tar.gz: 8897f618896da56f8e639f87f302b41442f9100635ba5b889a25a77860ae6573
5
5
  SHA512:
6
- metadata.gz: b2f58f56e522351ab0e5bafa318e72efcf7e01a78b4449ea1b4651da4926d9a33272d8a43f3cf38c4140a61f16698131da8945a4a963a2f7db3c0a16c1e216d6
7
- data.tar.gz: cba4e9e31458f792befd1c72886f70e9ca3233f49c4ff01f735c5c04bcd710bf0bd0ba411996bf074feb0b5e600c20582fb362e19d33dc6299d5bb9f4d3684d8
6
+ metadata.gz: ede384ab6f5500c887bfbd6bf759afd86d4f4a3461654a10a85029316a891957ce65df238bef35de995a16537d1b6fac84ee2215426aa44322d8f3b2c4f7fd87
7
+ data.tar.gz: 230d3631b8b0b3a29e40e4ed4c69c6d8a0fa7bba85d4b612cabc92724e7033e735a11655ebf438cd784dc247e4dd9e2e20d0d373d657246f9d705dfe0c7c3857
@@ -1,5 +1,6 @@
1
1
  require 'socket'
2
2
  require 'thread'
3
+ require 'timeout'
3
4
 
4
5
  module ParallelServer
5
6
  class Prefork
@@ -18,7 +19,7 @@ module ParallelServer
18
19
  # @param opts [Hash] options
19
20
  # @option opts [Integer] :min_processes (5) minimum processes
20
21
  # @option opts [Integer] :max_processes (20) maximum processes
21
- # @option opts [Integer] :max_idle (10) cihld process exits if max_idle seconds is expired
22
+ # @option opts [Integer] :max_idle (10) child process exits if max_idle seconds is expired
22
23
  # @option opts [Integer] :max_use (1000) child process exits if it is connected max_use times.
23
24
  # @option opts [Integer] :max_threads (1) maximum threads per process
24
25
  # @option opts [Integer] :standby_threads (5) keep free processes or threads
@@ -231,10 +232,6 @@ module ParallelServer
231
232
  if st = Conversation.recv(from_child)
232
233
  st[:time] = Time.now
233
234
  @child_status[from_child].update st
234
- if st[:status] == :stop
235
- @to_child[from_child].close rescue nil
236
- @to_child.delete from_child
237
- end
238
235
  else
239
236
  @from_child.delete from_child
240
237
  @to_child[from_child].close rescue nil
@@ -282,9 +279,9 @@ module ParallelServer
282
279
  now = Time.now
283
280
  @child_status.each do |r, st|
284
281
  if now > st[:time] + @watchdog_timer + 60
285
- Process.kill 'KILL', @from_child[r]
282
+ Process.kill 'KILL', @from_child[r] rescue nil
286
283
  elsif now > st[:time] + @watchdog_timer && ! st[:signal_sent]
287
- Process.kill @watchdog_signal, @from_child[r]
284
+ Process.kill @watchdog_signal, @from_child[r] rescue nil
288
285
  st[:signal_sent] = true
289
286
  end
290
287
  end
@@ -358,7 +355,6 @@ module ParallelServer
358
355
  @threads = {}
359
356
  @threads_mutex = Mutex.new
360
357
  @threads_cv = ConditionVariable.new
361
- @parent_mutex = Mutex.new
362
358
  @status = :run
363
359
  end
364
360
 
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.6.1
4
+ version: 0.1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomita Masahiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-01 00:00:00.000000000 Z
11
+ date: 2019-08-28 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
@@ -40,8 +40,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  requirements: []
43
- rubyforge_project:
44
- rubygems_version: 2.5.2
43
+ rubygems_version: 3.0.3
45
44
  signing_key:
46
45
  specification_version: 4
47
46
  summary: Parallel TCP Server library