Skip to content

Commit 2600c9a

Browse files
committed
Add release notes.
1 parent 8165303 commit 2600c9a

File tree

3 files changed

+56
-0
lines changed

3 files changed

+56
-0
lines changed

bake.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# frozen_string_literal: true
2+
3+
# Released under the MIT License.
4+
# Copyright, 2025, by Samuel Williams.
5+
6+
# Update the project documentation with the new version number.
7+
#
8+
# @parameter version [String] The new version number.
9+
def after_gem_release_version_increment(version)
10+
context["releases:update"].call(version)
11+
context["utopia:project:readme:update"].call
12+
end

readme.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ Provides containers which implement parallelism for clients and servers.
1616

1717
Please see the [project documentation](https://socketry.github.io/async-container/).
1818

19+
## Releases
20+
1921
## Contributing
2022

2123
We welcome contributions to this project.

releases.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,47 @@
22

33
## Unreleased
44

5+
- Fix compatibility between {ruby Async::Container::Hybrid} and the health check.
6+
- {ruby Async::Container::Generic#initialize} passes unused arguments through to {ruby Async::Container::Group}.
7+
8+
## v0.20.0
9+
10+
511
- Improve container signal handling reliability by using `Thread.handle_interrupt` except at known safe points.
612
- Improved logging when child process fails and container startup.
13+
14+
### Add `health_check_timeout` for detecting hung processes.
15+
16+
In order to detect hung processes, a `health_check_timeout` can be specified when spawning children workers. If the health check does not complete within the specified timeout, the child process is killed.
17+
18+
```ruby
19+
require "async/container"
20+
21+
container = Async::Container.new
22+
23+
container.run(count: 1, restart: true, health_check_timeout: 1) do |instance|
24+
while true
25+
# This example will fail sometimes:
26+
sleep(0.5 + rand)
27+
instance.ready!
28+
end
29+
end
30+
31+
container.wait
32+
```
33+
34+
If the health check does not complete within the specified timeout, the child process is killed:
35+
36+
```
37+
3.01s warn: Async::Container::Forked [oid=0x1340] [ec=0x1348] [pid=27100] [2025-02-20 13:24:55 +1300]
38+
| Child failed health check!
39+
| {
40+
| "child": {
41+
| "name": "Unnamed",
42+
| "pid": 27101,
43+
| "status": null
44+
| },
45+
| "age": 1.0612829999881797,
46+
| "health_check_timeout": 1
47+
| }
48+
```

0 commit comments

Comments
 (0)