You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: readme.md
+12-1Lines changed: 12 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,6 +35,17 @@ Please see the [project documentation](https://socketry.github.io/async/) for mo
35
35
36
36
Please see the [project releases](https://socketry.github.io/async/releases/index) for all releases.
37
37
38
+
### v2.26.0
39
+
40
+
-`Async::Notification#signal` now returns `true` if a task was signaled, `false` otherwise, providing better feedback for notification operations.
41
+
-`require "async/limited_queue"` is required to use `Async::LimitedQueue` without a deprecation warning. `Async::LimitedQueue` is not deprecated, but it's usage via `async/queue` is deprecated.
42
+
-`Async::Task#sleep` is deprecated with no replacement.
43
+
-`Async::Task.yield` is deprecated with no replacement.
44
+
-`Async::Scheduler#async` is deprecated, use `Async{}`, `Sync{}` or `Async::Task#async` instead.
45
+
- Agent context is now available, via the [`agent-context` gem](https://github.com/ioquatix/agent-context).
- Added support for `io_select` hook in the fiber scheduler, allowing non-blocking `IO.select` operations. This enables better integration with code that uses `IO.select` for multiplexing IO operations.
@@ -62,7 +73,7 @@ Please see the [project releases](https://socketry.github.io/async/releases/inde
Copy file name to clipboardExpand all lines: releases.md
+16-10Lines changed: 16 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Releases
2
2
3
-
## Unreleased
3
+
## v2.26.0
4
4
5
5
-`Async::Notification#signal` now returns `true` if a task was signaled, `false` otherwise, providing better feedback for notification operations.
6
6
-`require "async/limited_queue"` is required to use `Async::LimitedQueue` without a deprecation warning. `Async::LimitedQueue` is not deprecated, but it's usage via `async/queue` is deprecated.
@@ -13,10 +13,12 @@
13
13
14
14
`Async::Barrier` now provides more flexible and predictable behavior for waiting on task completion:
15
15
16
-
-**Completion-order waiting**: `barrier.wait` now processes tasks in the order they complete rather than the order they were created. This provides more predictable behavior when tasks have different execution times.
17
-
-**Block-based waiting**: `barrier.wait` now accepts an optional block that yields each task as it completes, allowing for custom handling of individual tasks:
16
+
-**Completion-order waiting**: `barrier.wait` now processes tasks in the order they complete rather than the order they were created. This provides more predictable behavior when tasks have different execution times.
17
+
-**Block-based waiting**: `barrier.wait` now accepts an optional block that yields each task as it completes, allowing for custom handling of individual tasks:
18
18
19
-
```ruby
19
+
<!-- end list -->
20
+
21
+
```ruby
20
22
barrier =Async::Barrier.new
21
23
22
24
# Start several tasks
@@ -34,9 +36,11 @@ barrier.wait do |task|
34
36
end
35
37
```
36
38
37
-
-**Partial completion support**: The new block-based interface allows you to wait for only the first N tasks to complete:
39
+
-**Partial completion support**: The new block-based interface allows you to wait for only the first N tasks to complete:
40
+
41
+
<!-- end list -->
38
42
39
-
```ruby
43
+
```ruby
40
44
# Wait for only the first 3 tasks to complete
41
45
count =0
42
46
barrier.wait do |task|
@@ -52,11 +56,13 @@ This makes `Async::Barrier` a superset of `Async::Waiter` functionality, providi
52
56
53
57
`Async::Queue` and `Async::LimitedQueue` can now be closed, which provides better resource management and error handling:
54
58
55
-
-**New `close` method**: Both queue types now have a `close` method that prevents further items from being added and signals any waiting tasks.
56
-
-**Consistent error handling**: All queue modification methods (`push`, `enqueue`, `<<`) now raise `Async::Queue::ClosedError` when called on a closed queue.
57
-
-**Waiting task signaling**: When a queue is closed, any tasks waiting on `dequeue` (for regular queues) or `enqueue` (for limited queues) are properly signaled and can complete.
59
+
-**New `close` method**: Both queue types now have a `close` method that prevents further items from being added and signals any waiting tasks.
60
+
-**Consistent error handling**: All queue modification methods (`push`, `enqueue`, `<<`) now raise `Async::Queue::ClosedError` when called on a closed queue.
61
+
-**Waiting task signaling**: When a queue is closed, any tasks waiting on `dequeue` (for regular queues) or `enqueue` (for limited queues) are properly signaled and can complete.
0 commit comments