-
Notifications
You must be signed in to change notification settings - Fork 29
no_std compatible async/await #42
Comments
I think this is blocked on having (limited, |
I assume with this you’re thinking to do the same lifetime erasure of the context that is used with TLS and rely on the async transformation not allowing the context variable to leak into the rest of the code? I really don’t understand the generator transform enough to know if this is easy, but it seems like it should be possible to have the argument variable special-cased to not be borrow-able across yield points even in immovable generators. That plus a memory barrier at the yield point to disallow the optimiser moving reads across it should allow passing temporaries as arguments to generators. |
Hi, I just want to know the status of this issue - can we use async/await on no_std now? |
@riaqn no, not yet. It's still blocked on someone doing the design and implementation for generator resume-arguments or coming up with an alternative plan. (I have implemented a PoC of an alternative implementation in https://github.com/Nemo157/embrio-rs/tree/master/embrio-async to make sure there's some possibility other than generator resume-arguments, although I've recently found out that it optimizes really badly with LTO). Relevant Rust issues to track: rust-lang/rust#56974 and rust-lang/rust#56767 |
This is mostly a local tracking issue for
wg-net-embedded
of blocking work that needs to happen inrustc
.The initial implementation of
async
/await!
used TLS for ease of implementation. Before we can start developing usingasync
/await!
on embedded we will need to move this onto something that isno_std
compatible.The text was updated successfully, but these errors were encountered: