Struct InitData

Source
pub struct InitData<T: Send>(pub UnsafeCell<Option<T>>);
Expand description

The holder of data that is to be shared with the target thread.

§Safety

The Option is kept in an UnsafeCell, and it’s use governed by an atomic in the TaskData below. When the task is not initialized/not running, this should be set to None. It will be set to Some in a critical section during startup, where the critical section provides the barrier. Once the atomic is set to true, the thread owns this data.

The Send constraint force arguments passed to threads to be Send.

Tuple Fields§

§0: UnsafeCell<Option<T>>

Implementations§

Source§

impl<T: Send> InitData<T>

Source

pub const fn new() -> Self

Construct new Shared init state.

Trait Implementations§

Source§

impl<T: Send> Sync for InitData<T>

Auto Trait Implementations§

§

impl<T> !Freeze for InitData<T>

§

impl<T> !RefUnwindSafe for InitData<T>

§

impl<T> Send for InitData<T>

§

impl<T> Unpin for InitData<T>
where T: Unpin,

§

impl<T> UnwindSafe for InitData<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

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

Source§

type Error = Infallible

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

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

Performs the conversion.
Source§

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

Source§

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

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

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

Performs the conversion.