#waker #no-alloc #async #hold #no-std

no-std 唤醒集

no_std, no_alloc 的 Future 类型中 Waker 的存储

2 个版本

0.1.1 2024 年 5 月 27 日
0.1.0 2024 年 5 月 27 日

#445并发


用于 批量通道

MIT 许可证

22KB
293

no_std,零分配实用程序 crate,用于在 Future 对象本身中高效存储 Waker 集合。

提供一个安全的接口,并通过 MIRI。


lib.rs:

异步数据结构,如通道,需要跟踪等待的 futures 集合。将它们保存在 Vec 中需要分配。我们可以通过在 futures 本身中存储挂起的 wakers 并将它们链接到一个侵入式双链表中来做得更好。

此 crate 提供了一个 no_std、no_alloc、安全的 Rust 接口来上述策略。共享数据结构包含一个 [WakerList],每个挂起的 future 包含一个 [WakerSlot],每个都包含一个 [Waker] 的空间。

依赖项

~66KB