Announcement: aselect! - an alternative to tokio::select
https://github.com/avl/aselect
The tokio `select!` macro has two characteristics that can make it error-prone:
1. When one arm completes, all the other arms are canceled
2. When used in loops, if a handler runs async code, other arms are starved
aselect avoids these pitfalls by never canceling futures, and never starving them. The crate has not seen production use, so there could be bugs.
Feedback and suggestions welcome! Will something like this make async rust less error prone?