Tracking Issue for LocalWaker · Issue #118959 · rust-lang/rust (original) (raw)
Feature gate: #![feature(local_waker)]
This is a tracking issue for support for local wakers on Context
. This allows libraries to hold non thread safe data on their wakers, guaranteeing at compile time that the wakers will not be sent across threads. It includes a ContextBuilder
type for building contexts.
Public API
impl Context { fn local_waker(&self) -> &LocalWaker; }
impl<'a> ContextBuilder<'a> { fn from_waker(waker: &'a Waker) -> ContextBuilder<'a>; fn waker(self, waker: &'a Waker) -> ContextBuilder<'a>; fn local_waker(self, local_waker: &'a LocalWaker,) -> ContextBuilder<'a> fn build(self) -> Context; }
impl From<&mut Context> for ContextBuilder;
pub trait LocalWake { fn wake(self: Rc); }
Steps / History
- Implementation:
- Have the @rust-lang/wg-async approve the API
- Final comment period (FCP)1
- Stabilization PR
Unresolved Questions
- Should runtimes be allowed to not define a waker?