Skip to content

conditionally contribute set_error_t(std::exception_ptr) in repeat_* senders#1799

Open
justend29 wants to merge 15 commits intoNVIDIA:mainfrom
justend29:repeat-conditional-error
Open

conditionally contribute set_error_t(std::exception_ptr) in repeat_* senders#1799
justend29 wants to merge 15 commits intoNVIDIA:mainfrom
justend29:repeat-conditional-error

Conversation

@justend29
Copy link
Contributor

Currently, the repeat_ family of sender adapters invariantly contributes set_error_t(std::exception_ptr) to its completion signatures, which I first mentioned in this issue. This PR causes repeat_until, repeat, and repeat_n to conditionally contribute set_error_t(std::exception_ptr) to the completion signatures. Each of the possible cases (not) to contribute the completion signature are individually tested.

It also contains some small corrections that were originally in #1797, until @RobertLeahy informed me that it is possible to detect the noexcept-ness of a connect using STDEXEC::__receiver_archetype<Env>, wherein I returned to this original goal.

This is also my first time working with the meta-programming system in this library, so feedback is welcome.

@copy-pr-bot
Copy link

copy-pr-bot bot commented Jan 28, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@justend29
Copy link
Contributor Author

Thank you for the review, @ericniebler. All of your comments have been addressed, though __partition_completion_signatures_t was changed to __partitions_of_t to compile.

@ericniebler
Copy link
Collaborator

/ok to test ac8352c

@ericniebler
Copy link
Collaborator

/ok to test 99cf087

@justend29
Copy link
Contributor Author

@ericniebler It's odd that the CI jobs using an older version of GCC fail while the other CI jobs pass. I tested everything with GCC15.2.1 locally. I'm not sure if you have any ideas, but I can probably install an older version of GCC and try to reproduce the failing build locally over the weekend.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants