From 3dd3973d2a18531a9313ddb1b606212d7f59cba4 Mon Sep 17 00:00:00 2001 From: Sieger9303 <1517158051@qq.com> Date: Fri, 22 May 2026 10:51:33 +0800 Subject: [PATCH] fix: mark raw waker callbacks unsafe --- src/native/global.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/native/global.rs b/src/native/global.rs index f9c22e3..fb2233c 100644 --- a/src/native/global.rs +++ b/src/native/global.rs @@ -82,21 +82,21 @@ fn run(mut timer: Timer, done: Arc) { static VTABLE: RawWakerVTable = RawWakerVTable::new(raw_clone, raw_wake, raw_wake_by_ref, raw_drop); -fn raw_clone(ptr: *const ()) -> RawWaker { +unsafe fn raw_clone(ptr: *const ()) -> RawWaker { let me = ManuallyDrop::new(unsafe { Arc::from_raw(ptr as *const Thread) }); mem::forget(me.clone()); RawWaker::new(ptr, &VTABLE) } -fn raw_wake(ptr: *const ()) { +unsafe fn raw_wake(ptr: *const ()) { unsafe { Arc::from_raw(ptr as *const Thread) }.unpark() } -fn raw_wake_by_ref(ptr: *const ()) { +unsafe fn raw_wake_by_ref(ptr: *const ()) { ManuallyDrop::new(unsafe { Arc::from_raw(ptr as *const Thread) }).unpark() } -fn raw_drop(ptr: *const ()) { +unsafe fn raw_drop(ptr: *const ()) { unsafe { Arc::from_raw(ptr as *const Thread) }; }