From 6d3feb581f2620ee4884f9699f5492f079ed0911 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Tue, 30 Dec 2025 14:53:20 +0000 Subject: [PATCH] task: Better typed RawTask::try_read_output (#7806) --- tokio/src/runtime/task/join.rs | 3 +-- tokio/src/runtime/task/raw.rs | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/tokio/src/runtime/task/join.rs b/tokio/src/runtime/task/join.rs index f90bc85e3..2b614c9c0 100644 --- a/tokio/src/runtime/task/join.rs +++ b/tokio/src/runtime/task/join.rs @@ -339,8 +339,7 @@ impl Future for JoinHandle { // // The type of `T` must match the task's output type. unsafe { - self.raw - .try_read_output(&mut ret as *mut _ as *mut (), cx.waker()); + self.raw.try_read_output(&mut ret, cx.waker()); } if ret.is_ready() { diff --git a/tokio/src/runtime/task/raw.rs b/tokio/src/runtime/task/raw.rs index 164e9422d..96453e640 100644 --- a/tokio/src/runtime/task/raw.rs +++ b/tokio/src/runtime/task/raw.rs @@ -281,9 +281,9 @@ impl RawTask { /// Safety: `dst` must be a `*mut Poll>` where `T` /// is the future stored by the task. - pub(super) unsafe fn try_read_output(self, dst: *mut (), waker: &Waker) { + pub(super) unsafe fn try_read_output(self, dst: *mut Poll>, waker: &Waker) { let vtable = self.header().vtable; - (vtable.try_read_output)(self.ptr, dst, waker); + (vtable.try_read_output)(self.ptr, dst as *mut _, waker); } pub(super) fn drop_join_handle_slow(self) {