The sender attributes of `then` and `upon_xxx` incorrectly answer queries for `get_completion_scheduler` and `get_completion_domain`

Offen
#2,415 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
cpp

Rechercherichtung

Start by locating the sender adaptors then, upon_error, and upon_stopped, then trace how they answer get_completion_scheduler and get_completion_domain queries. Compare the set_value case with the upstream completion channel each adaptor handles, especially for upon_error. Done when those queries report the scheduler and domain associated with the completion channel that can invoke the receiver.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

The sender attributes of then, upon_error, and upon_stopped incorrectly answer queries for get_completion_scheduler and get_completion_domain.
For example, in the current implementation, the set_value completion scheduler and completion domain of sndr | ex::upon_error([](...) noexcept { ... }) are reported as sndr's set_value completion scheduler and completion domain. However, this is incorrect; it should instead consider sndr's set_error completion scheduler and completion domain, because the receiver's set_value may complete on an execution agent of sndr's set_error completion scheduler.

Vorherrschende Sprache
C++
Sterne
2.5k
Forks
284
Ø Merge
1 T. 21 Std.
Gemergte PRs (30 T.)
92

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus NVIDIA/stdexec

Alle Issues in NVIDIA/stdexec

Ähnliche Issues

Weitere Issues zu C++

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.