Title
`let_value/error/stopped` should specify the attributes of their senders
Status
new
Section
[exec.let]
Submitter
Eric Niebler

Created on 2025-10-16.00:00:00 last changed 7 days ago

Messages

Date: 2025-10-15.00:00:00

[ 2025-10-23; Reflector poll. ]

Set priority to 1 after reflector poll.

"Looks like a special case of the problem that P3826 addresses."

Date: 2025-10-16.00:00:00

Imported from https://github.com/cplusplus/sender-receiver/issues/346.

`let_value(sndr, fn)` returns make-sender(let-tag, fn, sndr), which means that the `let_value` sender has one child. [exec.adapt.general] bullet (3.2) says:

A parent sender with a single child sender `sndr` has an associated attribute object equal to FWD-ENV(get_env(sndr)).

However, `let_value(sndr, fn)` does not know where it will be started or where it will complete in the general case. The function `fn` could return schedule(some-scheduler), making the `let_value` operation complete on some-scheduler. It would be wrong for the `let_value(sndr, fn)` sender to have `sndr`'s completion schedulers or domains.

`let_value/error/stopped` must define impls-for<let_xxx_t>::get-attrs to return FWD-ENV(get_env(sndr)) except that it handles the get_completion_scheduler_t<Tag> (for any completion tag `Tag`) and `get_domain_t` queries specially.

History
Date User Action Args
2025-10-23 12:39:14adminsetmessages: + msg15408
2025-10-16 00:00:00admincreate