Skip to main content

ThreadPtr

Struct ThreadPtr 

Source
pub struct ThreadPtr(/* private fields */);
Expand description

Type-safe wrapper around a raw pointer to a Zircon kernel Thread.

Implementations§

Source§

impl ThreadPtr

Source

pub const unsafe fn from_raw(ptr: *mut c_void) -> Option<Self>

Creates a ThreadPtr from a raw pointer.

§Safety

The caller must ensure that ptr is a valid pointer to a live kernel thread.

Source

pub const fn as_raw(self) -> *mut c_void

Returns the raw pointer.

Source

pub unsafe fn resume(self)

Resumes execution of the thread.

§Safety

The caller must ensure the thread has not been joined or destroyed.

Source

pub unsafe fn join(self, deadline: zx_instant_mono_t) -> Result<i32, Status>

Joins the thread, waiting for it to exit.

Returns the thread’s return code on success.

§Safety

The caller must ensure that the thread has not been joined yet.

Source

pub unsafe fn kill(self)

Kills the thread.

§Safety

The caller must ensure the thread is still valid.

Source

pub unsafe fn is_blocked(self) -> bool

Checks if the thread is currently blocked.

§Safety

The caller must ensure that the thread pointer is still valid and the underlying thread has not been destroyed or joined.

Source

pub unsafe fn current() -> Self

Returns a ThreadPtr representing the currently executing thread.

§Safety

The caller must ensure that this function is called after multi-threading has been initialized (i.e. after LK_INIT_LEVEL_THREADING).

Source

pub unsafe fn fxt_ref(self) -> FxtRef

Returns the thread’s process and thread KOIDs.

§Safety

The caller must ensure that the thread pointer is still valid and the underlying thread has not been destroyed.

Trait Implementations§

Source§

impl Clone for ThreadPtr

Source§

fn clone(&self) -> ThreadPtr

Returns a duplicate of the value. Read more
1.0.0 (const: unstable)§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ThreadPtr

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for ThreadPtr

Source§

fn eq(&self, other: &ThreadPtr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable)§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for ThreadPtr

Source§

impl Eq for ThreadPtr

Source§

impl Send for ThreadPtr

Source§

impl StructuralPartialEq for ThreadPtr

Source§

impl Sync for ThreadPtr

Auto Trait Implementations§

§

impl Freeze for ThreadPtr

§

impl RefUnwindSafe for ThreadPtr

§

impl Unpin for ThreadPtr

§

impl UnsafeUnpin for ThreadPtr

§

impl UnwindSafe for ThreadPtr

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> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.