Skip to content

refactor(example): port awaitable-sender to stdexec, reject lossy com… - #375

Merged
sgerbino merged 1 commit into
cppalliance:developfrom
sgerbino:pr/awaitable-sender-stdexec
Jul 28, 2026
Merged

refactor(example): port awaitable-sender to stdexec, reject lossy com…#375
sgerbino merged 1 commit into
cppalliance:developfrom
sgerbino:pr/awaitable-sender-stdexec

Conversation

@sgerbino

Copy link
Copy Markdown
Collaborator

…pound results

stdexec dispatches the C++26 static-template signature query, so the pre-P3164 instance-form overloads and the aggregate scaffolding that accommodated beman's brace-init decomposition probe go away; private data members remain the durable decomposition opt-out.

Sender completion channels are exclusive, so a compound io_result (error_code plus payload) cannot complete without silently dropping the payload on set_error/set_stopped - a partial read's byte count would vanish. Restore the original compile-time rejection, covering both as_sender and the awaitable_sender_base CRTP path, and delete the runtime split.

Payload delivery is pinned by tests on both sanctioned routes: a task<error_code> wrapper that moves the count out through a side channel, and counted_read_op, a base-derived op reporting its count through caller-owned state. The demo shows the latter end to end.

…pound results

stdexec dispatches the C++26 static-template signature query, so the
pre-P3164 instance-form overloads and the aggregate scaffolding that
accommodated beman's brace-init decomposition probe go away; private
data members remain the durable decomposition opt-out.

Sender completion channels are exclusive, so a compound io_result
(error_code plus payload) cannot complete without silently dropping
the payload on set_error/set_stopped - a partial read's byte count
would vanish. Restore the original compile-time rejection, covering
both as_sender and the awaitable_sender_base CRTP path, and delete
the runtime split.

Payload delivery is pinned by tests on both sanctioned routes: a
task<error_code> wrapper that moves the count out through a side
channel, and counted_read_op, a base-derived op reporting its count
through caller-owned state. The demo shows the latter end to end.
@cppalliance-bot

Copy link
Copy Markdown

An automated preview of the documentation is available at https://375.capy.prtest3.cppalliance.org/index.html

If more commits are pushed to the pull request, the docs will rebuild at the same URL.

2026-07-28 14:37:03 UTC

@codecov

codecov Bot commented Jul 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.09%. Comparing base (42e16c6) to head (12e1222).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff            @@
##           develop     #375   +/-   ##
========================================
  Coverage    98.09%   98.09%           
========================================
  Files          132      132           
  Lines         6288     6288           
========================================
  Hits          6168     6168           
  Misses         120      120           
Flag Coverage Δ
linux 98.08% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 42e16c6...12e1222. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cppalliance-bot

Copy link
Copy Markdown

GCOVR code coverage report https://375.capy.prtest3.cppalliance.org/gcovr/index.html
LCOV code coverage report https://375.capy.prtest3.cppalliance.org/genhtml/index.html
Coverage Diff Report https://375.capy.prtest3.cppalliance.org/diff-report/index.html

Build time: 2026-07-28 14:56:11 UTC

@sgerbino
sgerbino merged commit 9e03a84 into cppalliance:develop Jul 28, 2026
38 checks passed
@sgerbino
sgerbino deleted the pr/awaitable-sender-stdexec branch July 28, 2026 15:51
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Beast2 Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants