Feasability of fork topology without `split`
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 2.4k
- Forks
- 270
- Avg merge
- 3d 6h
- Merged PRs (30d)
- 39
Description
We'd like to represent the following topology (each node represents some work):
graph TD
A --> B
A --> C
B --> D
C --> D
C --> E
D --> END
E --> END
It seems that for such a case, it is possible to use split:
auto A = just() | then(...) | split();
auto B = A | then(...);
auto C = A | then(...) | split();
auto D = when_all(B, C) | then(...);
auto E = C | then(...);
sync_wait(when_all(D, E));
However, P3682 (written by @RobertLeahy) proposed to remove std::execution::split and as far as we understand it, it was approved.
Therefore, how would we represent the above topology, without introducing other dependencies ?
Joint question with @maartenarnst.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the topology and the split-based example in the issue, then read P3682 to understand the proposed removal of std::execution::split. Determine whether the shared-node graph can be represented using the remaining stdexec facilities without another dependency; done means providing a viable representation or documenting why it is not possible.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100