Tracking Issue for LocalWaker (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?