async-container-supervisor 0.6.0 → 0.6.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6fee2b80a7228f9c35664c63e1c33093cb768e5c964e52f595465585bea84831
4
- data.tar.gz: 384a75fb6affd59de5d91a169fe1094515079a938e44304375d786e07cff930b
3
+ metadata.gz: 9e01edf13b77af9c7b4d0a93869a64233d9121194cdafa33307713208c4c364c
4
+ data.tar.gz: 67bdd6ff907a23d7a3c4049558c20a586ac831ec5aae29eafdf3f0318a5d2470
5
5
  SHA512:
6
- metadata.gz: f4f2dfad26d080569c54a432a6f83461525dde4f4ce0610e90a2b9563e2ebcfb1cf2ee253ab38a669d5a8c2e155b84cb3bb002f385980f5bbddad90664ca1077
7
- data.tar.gz: 7695b0a3b6b4cecdb25fdcac2ebc55e5f401de4838af0280b9a6819a93e773d2436dc7dbea662b8a767950e8f9b3a3e9589853e99d778b085c5149240757379d
6
+ metadata.gz: 241be150b5fcc3329624d5d21aef08d7fc418a6fd97c8b521c34060dbffe209d1d0802f6b3591a9730f1497fdf92838c605c5316f2032c77ab380de56217aff5
7
+ data.tar.gz: 27013843d5d63de93777e1f39979c8ca416930e15cca536248a81793f193d4b7204c8f8e2d565cb2ff7f8f87be6a661a1e64e9d0e611cbb4b28d17eaefdaa907
checksums.yaml.gz.sig CHANGED
Binary file
@@ -185,9 +185,12 @@ module Async
185
185
  if call = @calls[id]
186
186
  # Response to a call:
187
187
  call.push(**message)
188
- else
188
+ elsif message.key?(:do)
189
189
  # Incoming call:
190
190
  Call.dispatch(self, target, id, message)
191
+ else
192
+ # Likely a response to a timed-out call, ignore it:
193
+ Console.debug(self, "Ignoring message:", message)
191
194
  end
192
195
  else
193
196
  Console.error(self, "Unknown message:", message)
@@ -6,8 +6,6 @@
6
6
  require_relative "connection"
7
7
  require_relative "endpoint"
8
8
 
9
- require "io/stream"
10
-
11
9
  module Async
12
10
  module Container
13
11
  module Supervisor
@@ -16,7 +14,7 @@ module Async
16
14
  method_name = "do_#{call.message[:do]}"
17
15
  self.public_send(method_name, call)
18
16
  rescue => error
19
- Console.error(self, "Error while dispatching call.", exception: error, call: call)
17
+ Console.error(self, "Error while dispatching call!", exception: error, call: call)
20
18
 
21
19
  call.fail(error: {
22
20
  class: error.class,
@@ -34,12 +34,12 @@ module Async
34
34
 
35
35
  # Register the connection (worker) with the memory monitor.
36
36
  def register(connection)
37
- Console.debug(self, "Registering connection:", connection: connection, state: connection.state)
37
+ Console.debug(self, "Registering connection.", connection: connection, state: connection.state)
38
38
  if process_id = connection.state[:process_id]
39
39
  connections = @processes[process_id]
40
40
 
41
41
  if connections.empty?
42
- Console.debug(self, "Registering process:", process_id: process_id)
42
+ Console.debug(self, "Registering process.", child: {process_id: process_id})
43
43
  self.add(process_id)
44
44
  end
45
45
 
@@ -55,7 +55,7 @@ module Async
55
55
  connections.delete(connection)
56
56
 
57
57
  if connections.empty?
58
- Console.debug(self, "Removing process:", process_id: process_id)
58
+ Console.debug(self, "Removing process.", child: {process_id: process_id})
59
59
  @cluster.remove(process_id)
60
60
  end
61
61
  end
@@ -74,7 +74,7 @@ module Async
74
74
  # @parameter monitor [Memory::Leak::Monitor] The monitor that detected the memory leak.
75
75
  # @returns [Boolean] True if the process was killed.
76
76
  def memory_leak_detected(process_id, monitor)
77
- Console.info(self, "Killing process:", process_id: process_id)
77
+ Console.info(self, "Killing process!", child: {process_id: process_id})
78
78
  Process.kill(:INT, process_id)
79
79
 
80
80
  true
@@ -88,7 +88,7 @@ module Async
88
88
  while true
89
89
  # This block must return true if the process was killed.
90
90
  @cluster.check! do |process_id, monitor|
91
- Console.error(self, "Memory leak detected in process:", process_id: process_id, monitor: monitor)
91
+ Console.error(self, "Memory leak detected!", child: {process_id: process_id}, monitor: monitor)
92
92
  memory_leak_detected(process_id, monitor)
93
93
  end
94
94
 
@@ -7,8 +7,6 @@ require_relative "connection"
7
7
  require_relative "endpoint"
8
8
  require_relative "dispatchable"
9
9
 
10
- require "io/stream"
11
-
12
10
  module Async
13
11
  module Container
14
12
  module Supervisor
@@ -29,11 +27,9 @@ module Async
29
27
  call.connection.state.merge!(call.message[:state])
30
28
 
31
29
  @monitors.each do |monitor|
32
- begin
33
- monitor.register(call.connection)
34
- rescue => error
35
- Console.error(self, "Error while registering process!", monitor: monitor, exception: error)
36
- end
30
+ monitor.register(call.connection)
31
+ rescue => error
32
+ Console.error(self, "Error while registering process!", monitor: monitor, exception: error)
37
33
  end
38
34
  ensure
39
35
  call.finish
@@ -61,22 +57,18 @@ module Async
61
57
 
62
58
  def remove(connection)
63
59
  @monitors.each do |monitor|
64
- begin
65
- monitor.remove(connection)
66
- rescue => error
67
- Console.error(self, "Error while removing process!", monitor: monitor, exception: error)
68
- end
60
+ monitor.remove(connection)
61
+ rescue => error
62
+ Console.error(self, "Error while removing process!", monitor: monitor, exception: error)
69
63
  end
70
64
  end
71
65
 
72
66
  def run(parent: Task.current)
73
67
  parent.async do |task|
74
68
  @monitors.each do |monitor|
75
- begin
76
- monitor.run
77
- rescue => error
78
- Console.error(self, "Error while starting monitor!", monitor: monitor, exception: error)
79
- end
69
+ monitor.run
70
+ rescue => error
71
+ Console.error(self, "Error while starting monitor!", monitor: monitor, exception: error)
80
72
  end
81
73
 
82
74
  @endpoint.accept do |peer|
@@ -6,7 +6,7 @@
6
6
  module Async
7
7
  module Container
8
8
  module Supervisor
9
- VERSION = "0.6.0"
9
+ VERSION = "0.6.2"
10
10
  end
11
11
  end
12
12
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-container-supervisor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -38,20 +38,6 @@ cert_chain:
38
38
  -----END CERTIFICATE-----
39
39
  date: 1980-01-02 00:00:00.000000000 Z
40
40
  dependencies:
41
- - !ruby/object:Gem::Dependency
42
- name: async-container
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.22'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0.22'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: async-service
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +66,6 @@ dependencies:
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: io-stream
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: memory-leak
99
71
  requirement: !ruby/object:Gem::Requirement
@@ -148,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
120
  - !ruby/object:Gem::Version
149
121
  version: '0'
150
122
  requirements: []
151
- rubygems_version: 3.6.7
123
+ rubygems_version: 3.7.2
152
124
  specification_version: 4
153
125
  summary: A supervisor for managing multiple container processes.
154
126
  test_files: []
metadata.gz.sig CHANGED
Binary file