1个不稳定版本
0.1.0 | 2019年7月26日 |
---|
#2158 in 异步
5KB
63 代码行
注意:这是一个绕过当前标准库限制的解决方案库。将来可能不再需要!
此库是一个受此处启发的libcore包装库,允许在受限制的环境中(如微控制器)使用#![feature(async_await)]
,在#![no_std]
。在当前实现中,task::Context
是一个空白上下文,什么也不做,且不存储在任何地方,因此此库仅在futures通过某些中断请求等外部方式唤醒时才有用。例如,在Cortex-M上,可以使用PendSV
异常来达到这个目的。
适当的实现将模拟线程局部存储,但我还没有需要这样做,并且可能在未来一段时间内也不需要。
用法
将以下内容放入你的Cargo.toml
以覆盖libcore
[dependencies.core]
package = "core-futures-stateless"
version = "0.1.0"
此库还公开了一个额外的非核心方法task::stateless_waker()
,该方法将创建一个无状态的task::Waker
(没有行为),你的执行器可以使用它来轮询futures。此方法可以轻松在外部实现,但为了方便和减少代码大小,提供此方法。