diff --git a/src/compat.rs b/src/compat.rs index ffc1353..2fec932 100644 --- a/src/compat.rs +++ b/src/compat.rs @@ -107,10 +107,14 @@ struct WakerProxy { write_waker: task::AtomicWaker, } -impl task::ArcWake for WakerProxy { - fn wake_by_ref(arc_self: &Arc) { - arc_self.read_waker.wake(); - arc_self.write_waker.wake(); +impl std::task::Wake for WakerProxy { + fn wake(self: Arc) { + self.wake_by_ref() + } + + fn wake_by_ref(self: &Arc) { + self.read_waker.wake(); + self.write_waker.wake(); } } @@ -125,8 +129,8 @@ where #[cfg(feature = "verbose-logging")] trace!("{}:{} AllowStd.with_context", file!(), line!()); let waker = match kind { - ContextWaker::Read => task::waker_ref(&self.read_waker_proxy), - ContextWaker::Write => task::waker_ref(&self.write_waker_proxy), + ContextWaker::Read => task::Waker::from(self.read_waker_proxy.clone()), + ContextWaker::Write => task::Waker::from(self.write_waker_proxy.clone()), }; let mut context = task::Context::from_waker(&waker); f(&mut context, Pin::new(&mut self.inner))