async-container-supervisor 0.2.0 → 0.3.0

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: 3a0bc9194df4540151c6eefcb4cee4c7e3409ef0987cd9c531854735e55aa8a4
4
- data.tar.gz: 71250f5046b37fb5be64e2230f6f17a4a17ed73a427e695e1e16838240c776d1
3
+ metadata.gz: b5936025301bd2c10f66b6e1348207c6f59e94e41c9a5ac4705fe3cd70d6ed90
4
+ data.tar.gz: 19aea49ee76c918c3192acb05a6fb2ac87cdb73cb75c95965b716bcf9f571c56
5
5
  SHA512:
6
- metadata.gz: 5e6f93605da53a940279f004d9132fc30c5de7c2517806f34c9fd3a4d4ffde964414a317d99f7828d72f4100891e807a8eef49f9c8bc45b76e2d130c8d820e67
7
- data.tar.gz: 7886788dd3cc56ac89f37e68657136ccf6ac608c0f74d48c6da73166c618a41d4608c650a9190c153b53f061803a3f81cd185c76ec10ff979cfebb89b03974ee
6
+ metadata.gz: 8cf7aa51fb4dd4947d43b37db76eb990ad06be54d5e9c1fa67016881cc80ef7d703aec514ca4be6243b33763dca221f2a8fe5f957c2fc0566d35cc893f0f3b10
7
+ data.tar.gz: 39d5d9b0ef7913af202d0ff7fc62b31afcbe3355075b21093deb6554fcc82a4a63a6ba68b0d5a67e91c4e367a873e616d124830fe87a535289bcfad5be003565
checksums.yaml.gz.sig CHANGED
Binary file
@@ -93,12 +93,34 @@ module Async
93
93
  call = self.new(connection, id, message)
94
94
 
95
95
  connection.calls[id] = call
96
- connection.write(id: id, **message)
97
-
98
- if block_given?
99
- call.each(&block)
100
- else
101
- return call.pop
96
+ begin
97
+ connection.write(id: id, **message)
98
+
99
+ if block_given?
100
+ call.each(&block)
101
+ else
102
+ intermediate = nil
103
+
104
+ while response = call.pop
105
+ if response.delete(:finished)
106
+ if intermediate
107
+ if response.any?
108
+ intermediate << response
109
+ end
110
+
111
+ return intermediate
112
+ else
113
+ return response
114
+ end
115
+ else
116
+ # Buffer intermediate responses:
117
+ intermediate ||= []
118
+ intermediate << response
119
+ end
120
+ end
121
+ end
122
+ ensure
123
+ connection.calls.delete(id)
102
124
  end
103
125
  end
104
126
  end
@@ -156,7 +178,7 @@ module Async
156
178
 
157
179
  def run(target)
158
180
  self.each do |message|
159
- if id = message[:id]
181
+ if id = message.delete(:id)
160
182
  if call = @calls[id]
161
183
  # Response to a call:
162
184
  call.push(**message)
@@ -43,9 +43,7 @@ module Async
43
43
  end
44
44
 
45
45
  def status(call)
46
- @processes.each do
47
- call.push(memory_monitor: @cluster)
48
- end
46
+ call.push(memory_monitor: @cluster)
49
47
  end
50
48
 
51
49
  def run
@@ -6,7 +6,7 @@
6
6
  module Async
7
7
  module Container
8
8
  module Supervisor
9
- VERSION = "0.2.0"
9
+ VERSION = "0.3.0"
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.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
metadata.gz.sig CHANGED
Binary file