From e62adea1f93f8eaba2f9da5ebe90e5f23a480101 Mon Sep 17 00:00:00 2001 From: Dániel Buga Date: Thu, 18 Dec 2025 09:57:52 +0100 Subject: executor: Add fallible from_waker getter --- embassy-executor/src/raw/mod.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'embassy-executor/src/raw/mod.rs') diff --git a/embassy-executor/src/raw/mod.rs b/embassy-executor/src/raw/mod.rs index ab845ed3b..2b7560de6 100644 --- a/embassy-executor/src/raw/mod.rs +++ b/embassy-executor/src/raw/mod.rs @@ -49,6 +49,7 @@ use self::run_queue::{RunQueue, RunQueueItem}; use self::state::State; use self::util::{SyncUnsafeCell, UninitCell}; pub use self::waker::task_from_waker; +use self::waker::try_task_from_waker; use super::SpawnToken; use crate::{Metadata, SpawnError}; @@ -57,6 +58,11 @@ extern "Rust" fn __embassy_time_queue_item_from_waker(waker: &Waker) -> &'static unsafe { task_from_waker(waker).timer_queue_item() } } +#[unsafe(no_mangle)] +extern "Rust" fn __try_embassy_time_queue_item_from_waker(waker: &Waker) -> Option<&'static mut TimerQueueItem> { + unsafe { try_task_from_waker(waker).map(|task| task.timer_queue_item()) } +} + /// Raw task header for use in task pointers. /// /// A task can be in one of the following states: -- cgit