Skip to content

Commit ee39fef

Browse files
Add release notes.
1 parent ba7738a commit ee39fef

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

releases.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,16 @@
55
- Thread-safe `Async::Condition` and `Async::Notification`, implemented using `Thread::Queue`.
66
- Thread-safe `Async::Queue` and `Async::LimitedQueue`, implemented using `Thread::Queue` and `Thread::LimitedQueue` respectively.
77

8-
### Introduce `Async::PriorityQueue`.
8+
### Introduce `Async::Promise`
9+
10+
This release introduces the new `Async::Promise` class and refactors `Async::Task` to use promises for state management internally. This architectural improvement achieves the design goal that "a task should be a promise with attached computation and cancellation handling."
11+
12+
- **Thread-safe promise implementation** with immutable state transitions.
13+
- **Consistent state management** using symbols: `:completed`, `:failed`, `:cancelled`.
14+
- **Promise cancellation** with `cancel()` method and `Cancel` exception class.
15+
- **Comprehensive test coverage** with 47 new test cases covering all edge cases.
16+
17+
### Introduce `Async::PriorityQueue`
918

1019
The new `Async::PriorityQueue` provides a thread-safe, fiber-aware queue where consumers can specify priority levels. Higher priority consumers are served first when items become available, with FIFO ordering maintained for equal priorities. This is useful for implementing priority-based task processing systems where critical operations need to be handled before lower priority work.
1120

0 commit comments

Comments
 (0)