⚠️ VeridianOS Kernel Documentation - This is low-level kernel code. All functions are unsafe unless explicitly marked otherwise. no_std

ThreadHandle

Struct ThreadHandle 

Source
pub struct ThreadHandle {
    pub id: ThreadId,
    pub process_id: ProcessId,
    pub state: RwLock<ThreadState>,
    pub attributes: ThreadAttributes,
    pub exit_value: Mutex<Option<*mut u8>>,
    pub joinable: AtomicBool,
    pub cpu_time: AtomicU64,
    pub context_switches: AtomicU64,
    pub cancel_requested: AtomicBool,
}
Expand description

Thread handle for management

Fields§

§id: ThreadId§process_id: ProcessId§state: RwLock<ThreadState>§attributes: ThreadAttributes§exit_value: Mutex<Option<*mut u8>>§joinable: AtomicBool§cpu_time: AtomicU64§context_switches: AtomicU64§cancel_requested: AtomicBool

Cancellation requested flag

Implementations§

Source§

impl ThreadHandle

Source

pub fn new( id: ThreadId, process_id: ProcessId, attributes: ThreadAttributes, ) -> Self

Create a new thread handle

Source

pub fn get_state(&self) -> ThreadState

Get thread state

Source

pub fn set_state(&self, state: ThreadState)

Set thread state

Source

pub fn is_joinable(&self) -> bool

Check if thread is joinable

Source

pub fn detach(&self)

Detach the thread

Source

pub fn get_cpu_time(&self) -> u64

Get CPU time used by thread

Source

pub fn get_context_switches(&self) -> u64

Get number of context switches

Source

pub fn is_cancel_requested(&self) -> bool

Check if cancellation was requested

Source

pub fn request_cancel(&self)

Request cancellation

Trait Implementations§

Source§

impl Debug for ThreadHandle

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !Freeze for ThreadHandle

§

impl !RefUnwindSafe for ThreadHandle

§

impl !Send for ThreadHandle

§

impl !Sync for ThreadHandle

§

impl Unpin for ThreadHandle

§

impl UnwindSafe for ThreadHandle

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.