async-container 0.27.3 → 0.27.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/async/container/group.rb +9 -4
- data/lib/async/container/version.rb +1 -1
- data/readme.md +4 -5
- data/releases.md +4 -0
- data.tar.gz.sig +0 -0
- metadata +1 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a81d686d7bcf4debd164fb322e88e4da3bbc9224d5191c49f020d386b996ecf4
|
4
|
+
data.tar.gz: fd4ff31ee2a1b3b03d4a72b9b73ae1e398bff6966b8b68759c27f0db6972b825
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3ab253a07c2c1878c316d3bd19a6889969741ccaea279dc4e1d9787f1ffd4973445f98f9262b8dfa0d1d30dda0114327226e14696632ec8813ab7648a37e95f
|
7
|
+
data.tar.gz: bf928811afebfd226c25ca62d368624f6914a283d07470277ee159903694e412268c6e2d2965cbe834ea9205c097ca2d8a78eb8f3664cb6a74fca4fe8c90c9c4
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -100,9 +100,14 @@ module Async
|
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
|
+
private def each_running(&block)
|
104
|
+
# We create a copy of the values here, in case the block modifies the running set:
|
105
|
+
@running.values.each(&block)
|
106
|
+
end
|
107
|
+
|
103
108
|
# Perform a health check on all running processes.
|
104
109
|
def health_check!
|
105
|
-
|
110
|
+
each_running do |fiber|
|
106
111
|
fiber.resume(:health_check!)
|
107
112
|
end
|
108
113
|
end
|
@@ -111,7 +116,7 @@ module Async
|
|
111
116
|
# This resumes the controlling fiber with an instance of {Interrupt}.
|
112
117
|
def interrupt
|
113
118
|
Console.info(self, "Sending interrupt to #{@running.size} running processes...")
|
114
|
-
|
119
|
+
each_running do |fiber|
|
115
120
|
fiber.resume(Interrupt)
|
116
121
|
end
|
117
122
|
end
|
@@ -120,7 +125,7 @@ module Async
|
|
120
125
|
# This resumes the controlling fiber with an instance of {Terminate}.
|
121
126
|
def terminate
|
122
127
|
Console.info(self, "Sending terminate to #{@running.size} running processes...")
|
123
|
-
|
128
|
+
each_running do |fiber|
|
124
129
|
fiber.resume(Terminate)
|
125
130
|
end
|
126
131
|
end
|
@@ -129,7 +134,7 @@ module Async
|
|
129
134
|
# This resumes the controlling fiber with an instance of {Kill}.
|
130
135
|
def kill
|
131
136
|
Console.info(self, "Sending kill to #{@running.size} running processes...")
|
132
|
-
|
137
|
+
each_running do |fiber|
|
133
138
|
fiber.resume(Kill)
|
134
139
|
end
|
135
140
|
end
|
data/readme.md
CHANGED
@@ -26,6 +26,10 @@ Please see the [project documentation](https://socketry.github.io/async-containe
|
|
26
26
|
|
27
27
|
Please see the [project releases](https://socketry.github.io/async-container/releases/index) for all releases.
|
28
28
|
|
29
|
+
### v0.27.4
|
30
|
+
|
31
|
+
- Fix race condition where `wait_for` could modify `@running` while it was being iterated over (`each_value`) during health checks.
|
32
|
+
|
29
33
|
### v0.27.3
|
30
34
|
|
31
35
|
- Add log for starting child, including container statistics.
|
@@ -64,11 +68,6 @@ Please see the [project releases](https://socketry.github.io/async-container/rel
|
|
64
68
|
|
65
69
|
- Use `SIGKILL`/`Thread#kill` when the health check fails. In some cases, `SIGTERM` may not be sufficient to terminate a process because the signal can be ignored or the process may be in an uninterruptible state.
|
66
70
|
|
67
|
-
### v0.20.1
|
68
|
-
|
69
|
-
- Fix compatibility between <code class="language-ruby">Async::Container::Hybrid</code> and the health check.
|
70
|
-
- <code class="language-ruby">Async::Container::Generic\#initialize</code> passes unused arguments through to <code class="language-ruby">Async::Container::Group</code>.
|
71
|
-
|
72
71
|
## Contributing
|
73
72
|
|
74
73
|
We welcome contributions to this project.
|
data/releases.md
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
metadata.gz.sig
CHANGED
Binary file
|