Struct ThreadInit

pub(crate) struct ThreadInit { pub handle: Thread, pub rust_start: Box<dyn FnOnce() + Send> }

The data passed to the spawned thread for thread initialization. Any thread implementation should start a new thread by calling .init() on this before doing anything else to ensure the current thread is properly initialized and the global allocator works.

Fields

handle: Thread
rust_start: Box<dyn FnOnce() + Send>

Implementations

impl ThreadInit

fn init(self: Box<Self>) -> Box<dyn FnOnce() + Send>

Initialize the 'current thread' mechanism on this thread, returning the Rust entry point.

Auto Trait Implementations

impl !RefUnwindSafe for ThreadInit

impl !Sync for ThreadInit

impl !UnwindSafe for ThreadInit

impl Freeze for ThreadInit

impl Send for ThreadInit

impl Unpin for ThreadInit

impl UnsafeUnpin for ThreadInit

Blanket Implementations

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

impl<T> From<T> for ThreadInit

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> SizeHint for ThreadInit where T: ?Sized,

fn lower_bound(&self) -> usize
fn upper_bound(&self) -> Option<usize>

impl<T> SizedTypeProperties for ThreadInit

impl<T, U> Into<U> for ThreadInit 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 ThreadInit where U: Into<T>,

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

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

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