cplusplus / sender-receiver

Issues list for P2300
Apache License 2.0
19 stars 3 forks source link

`get_completion_signatures()` doesn't take into account `transform_sender()` customizations #227

Closed lewissbaker closed 3 months ago

lewissbaker commented 4 months ago

The current specification of std::execution::get_completion_signatures(sndr, env) just returns type of sndr.get_completion_signatures(env).

However, this doesn't seem to take into account that when the env contains a domain that customises a sender's operation that it might return different sets of signatures. e.g. a different error type, might not be stoppable, etc.

Should the std::execution::get_completion_signatures() helper be applying the same transform_sender() transforms and then calling sndr.get_completion_signatures() on the result of transform_sender() instead?

ericniebler commented 4 months ago

OMG, and connect isn't using transform_sender either. This is a major oversight. Those changes were never actually proposed by P2999. /facepalm

UPDATE (2024-05-21): i'm working on a paper to address this right now. i hope to have it in the pre-st louis mailing.

UPDATE 2 (2024-05-22): https://isocpp.org/files/papers/P3303R0.html

inbal2l commented 3 months ago

@lewissbaker should this be closed as we have https://github.com/cplusplus/sender-receiver/issues/246?

lewissbaker commented 3 months ago

Yes, I believe this is now addressed by P3303R0, which was merged into P2300R10.