pub struct Thread { /* private fields */ }Expand description
Handle to an OS thread.
For the common case of current-thread operations (sleep_ms, yield_now),
use the associated functions directly — no handle needed.
Implementations§
Source§impl Thread
impl Thread
Sourcepub fn current() -> Self
pub fn current() -> Self
Get a non-owning handle to the currently running thread.
The returned handle will not destroy the thread on drop, since the caller does not own it.
Sourcepub fn create(
name: &[u8],
entry: unsafe extern "C" fn(*mut c_void),
priority: Priority,
stack_size: usize,
) -> Result<Self>
pub fn create( name: &[u8], entry: unsafe extern "C" fn(*mut c_void), priority: Priority, stack_size: usize, ) -> Result<Self>
Create a new thread via heap allocation (only in heap mode).
This is the low-level API that takes an unsafe extern "C" entry.
Prefer Thread::spawn() for safe Rust entry functions.
§Errors
Returns Error::NoMemory if heap allocation fails, or another error
if the RTOS rejects the thread descriptor.
Sourcepub fn spawn(
name: &[u8],
entry: fn(),
priority: Priority,
stack_size: usize,
) -> Result<Self>
pub fn spawn( name: &[u8], entry: fn(), priority: Priority, stack_size: usize, ) -> Result<Self>
Spawn a thread with a safe Rust entry function.
Uses a trampoline to convert fn() into the unsafe extern "C" entry
expected by the C API. No raw pointers or unsafe needed in user code.
§Errors
Returns Error::NoMemory if heap allocation fails, or another error
if the RTOS rejects the thread descriptor.
Sourcepub fn set_priority(&self, prio: Priority)
pub fn set_priority(&self, prio: Priority)
Set this thread’s priority.
Sourcepub fn get_stack_usage(&self) -> usize
pub fn get_stack_usage(&self) -> usize
Get current stack usage in bytes.
Sourcepub fn get_state(&self) -> ThreadState
pub fn get_state(&self) -> ThreadState
Get the thread’s current state.
Sourcepub fn get_runtime_stats(&self) -> Result<ThreadStats>
pub fn get_runtime_stats(&self) -> Result<ThreadStats>
Get runtime statistics (CPU time and utilization) for this thread.
§Errors
Returns an error if the RTOS does not support runtime statistics or the thread handle is invalid.