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) {