Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- **Smaller channel send coroutine frames**: `channel<T>::send(...)` now lets
its internal waiter borrow the by-value payload already owned by the send
coroutine frame instead of retaining a second moved-from/moved-to `T` pair.
Directly constructed public send awaiters remain owning, and queue,
cancellation, close, and dequeue-versus-destruction behavior is unchanged
(#1047).
- **Allocation-free ready semaphore acquires**: Non-cancellable acquires now
defer shared wake-state allocation until the ready permit check fails.
Entering `await_suspend` allocates before taking the semaphore queue lock,
Expand Down
7 changes: 7 additions & 0 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,13 @@ add_executable(bench_channel bench_channel.cpp)
target_link_libraries(bench_channel PRIVATE elio)
target_link_options(bench_channel PRIVATE ${STATIC_LINK_FLAGS})

add_executable(bench_channel_send_frame
bench_channel_send_frame.cpp
channel_send_frame_bench_factory.cpp
)
target_link_libraries(bench_channel_send_frame PRIVATE elio)
target_link_options(bench_channel_send_frame PRIVATE ${STATIC_LINK_FLAGS})

# Signal handling example
add_executable(signal_handling signal_handling.cpp)
target_link_libraries(signal_handling PRIVATE elio)
Expand Down
Loading