Inter-proc channel operations where data is ignored
- Dominant language
- C++
- Stars
- 1.9k
- Forks
- 283
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 135
Description
Consider the situation where a receive is performed and the data is ignored- one scenario where this could happen is a top proc with an array of channels where it receives from each of `N` identical child procs and for whatever reason the top proc drops the data on the floor for half of the children.
Currently, this results in a few different not-great things:
1) we don't narrow the channels where data is ignored (they could be zero-width)
2) we don't DCE the unread ports[^1]
3) we don't waive the unread ports
[^1]: is it a good thing to DCE ports? It might be useful to keep them around to facilitate testing internal blocks, but I don't think we have a strong contract wrt what internal blocks look like.
This problem is currently manifesting for me as unread ports (3), but ideally we'd also have (1) and/or (2) to obviate the need for waivers.
Contributor guide
Assessment
This issue has not been assessed yet.