Skip to content

Add mpsc select #135437

Open
Open
@Timmmm

Description

@Timmmm

Rust has nice implementations of channels, but is missing an implementation of select (i.e. wait on multiple channels), which severely limits their usefulness.

The usual solution is to give up on std::sync::mpsc::channel entirely and use crossbeam-channel instead. That's rather unfortunate - it's like providing a file API, but there's no write functionality so you have to use a third party crate for all file operations instead.

Years ago there was an unstable implementation, but it was removed in 2019 without ever being stabilised (the implementation was apparently unsafe and had other issues - see #27800).

However since 2022, std::sync::mpsc::channel has been implemented in terms of crossbeam-channel, which makes it even more weird that you still have to use crossbeam-channel, and also presumably means that importing crossbeam-channel's select implementation is much easier.

Could we do that?

Metadata

Metadata

Assignees

Labels

C-feature-requestCategory: A feature request, i.e: not implemented / a PR.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions