Skip to content

Commit a0737d8

Browse files
committed
Bump minor version.
1 parent 9b54ad3 commit a0737d8

File tree

3 files changed

+28
-27
lines changed

3 files changed

+28
-27
lines changed

lib/async/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
# Copyright, 2017-2024, by Samuel Williams.
55

66
module Async
7-
VERSION = "2.18.0"
7+
VERSION = "2.19.0"
88
end

readme.md

+5
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ Please see the [project documentation](https://socketry.github.io/async/) for mo
3535

3636
Please see the [project releases](https://socketry.github.io/async/releases/index) for all releases.
3737

38+
### v2.19.0
39+
40+
- [Async::Scheduler Debugging](https://socketry.github.io/async/releases/index#async::scheduler-debugging)
41+
- [Console Shims](https://socketry.github.io/async/releases/index#console-shims)
42+
3843
### v2.18.0
3944

4045
- Add support for `Sync(annotation:)`, so that you can annotate the block with a description of what it does, even if it doesn't create a new task.

releases.md

+22-26
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,34 @@
11
# Releases
22

3-
## Unreleased
3+
## v2.19.0
44

55
### Async::Scheduler Debugging
66

77
Occasionally on issues, I encounter people asking for help and I need more information. Pressing Ctrl-C to exit a hung program is common, but it usually doesn't provide enough information to diagnose the problem. Setting the `CONSOLE_LEVEL=debug` environment variable will now print additional information about the scheduler when you interrupt it, including a backtrace of the current tasks.
88

9-
```
10-
> CONSOLE_LEVEL=debug bundle exec ruby ./test.rb
11-
^C 0.0s debug: Async::Reactor [oid=0x974] [ec=0x988] [pid=9116] [2024-11-08 14:12:03 +1300]
12-
| Scheduler interrupted: Interrupt
13-
| #<Async::Reactor:0x0000000000000974 1 children (running)>
14-
| #<Async::Task:0x000000000000099c /Users/samuel/Developer/socketry/async/lib/async/scheduler.rb:185:in `transfer' (running)>
15-
| → /Users/samuel/Developer/socketry/async/lib/async/scheduler.rb:185:in `transfer'
16-
| /Users/samuel/Developer/socketry/async/lib/async/scheduler.rb:185:in `block'
17-
| /Users/samuel/Developer/socketry/async/lib/async/scheduler.rb:207:in `kernel_sleep'
18-
| /Users/samuel/Developer/socketry/async/test.rb:7:in `sleep'
19-
| /Users/samuel/Developer/socketry/async/test.rb:7:in `sleepy'
20-
| /Users/samuel/Developer/socketry/async/test.rb:12:in `block in <top (required)>'
21-
| /Users/samuel/Developer/socketry/async/lib/async/task.rb:197:in `block in run'
22-
| /Users/samuel/Developer/socketry/async/lib/async/task.rb:420:in `block in schedule'
23-
/Users/samuel/Developer/socketry/async/lib/async/scheduler.rb:317:in `select': Interrupt
24-
... (backtrace continues) ...
25-
```
9+
> CONSOLE_LEVEL=debug bundle exec ruby ./test.rb
10+
^C 0.0s debug: Async::Reactor [oid=0x974] [ec=0x988] [pid=9116] [2024-11-08 14:12:03 +1300]
11+
| Scheduler interrupted: Interrupt
12+
| #<Async::Reactor:0x0000000000000974 1 children (running)>
13+
| #<Async::Task:0x000000000000099c /Users/samuel/Developer/socketry/async/lib/async/scheduler.rb:185:in `transfer' (running)>
14+
| → /Users/samuel/Developer/socketry/async/lib/async/scheduler.rb:185:in `transfer'
15+
| /Users/samuel/Developer/socketry/async/lib/async/scheduler.rb:185:in `block'
16+
| /Users/samuel/Developer/socketry/async/lib/async/scheduler.rb:207:in `kernel_sleep'
17+
| /Users/samuel/Developer/socketry/async/test.rb:7:in `sleep'
18+
| /Users/samuel/Developer/socketry/async/test.rb:7:in `sleepy'
19+
| /Users/samuel/Developer/socketry/async/test.rb:12:in `block in <top (required)>'
20+
| /Users/samuel/Developer/socketry/async/lib/async/task.rb:197:in `block in run'
21+
| /Users/samuel/Developer/socketry/async/lib/async/task.rb:420:in `block in schedule'
22+
/Users/samuel/Developer/socketry/async/lib/async/scheduler.rb:317:in `select': Interrupt
23+
... (backtrace continues) ...
2624

2725
This gives better visibility into what the scheduler is doing, and should help diagnose issues.
2826

2927
### Console Shims
3028

3129
The `async` gem depends on `console` gem, because my goal was to have good logging by default without thinking about it too much. However, some users prefer to avoid using the `console` gem for logging, so I've added an experimental set of shims which should allow you to bypass the `console` gem entirely.
3230

33-
```ruby
31+
``` ruby
3432
require 'async/console'
3533
require 'async'
3634

@@ -39,13 +37,11 @@ Async{raise "Boom"}
3937

4038
Will now use `Kernel#warn` to print the task failure warning:
4139

42-
```
43-
#<Async::Task:0x00000000000012d4 /home/samuel/Developer/socketry/async/lib/async/task.rb:104:in `backtrace' (running)>
44-
Task may have ended with unhandled exception.
45-
(irb):4:in `block in <top (required)>': Boom (RuntimeError)
46-
from /home/samuel/Developer/socketry/async/lib/async/task.rb:197:in `block in run'
47-
from /home/samuel/Developer/socketry/async/lib/async/task.rb:420:in `block in schedule'
48-
```
40+
#<Async::Task:0x00000000000012d4 /home/samuel/Developer/socketry/async/lib/async/task.rb:104:in `backtrace' (running)>
41+
Task may have ended with unhandled exception.
42+
(irb):4:in `block in <top (required)>': Boom (RuntimeError)
43+
from /home/samuel/Developer/socketry/async/lib/async/task.rb:197:in `block in run'
44+
from /home/samuel/Developer/socketry/async/lib/async/task.rb:420:in `block in schedule'
4945

5046
## v2.18.0
5147

0 commit comments

Comments
 (0)