Struct tokio::runtime::scheduler::current_thread::Handle

source ·
pub(crate) struct Handle {
    shared: Shared,
    pub(crate) driver: Handle,
    pub(crate) blocking_spawner: Spawner,
    pub(crate) seed_generator: RngSeedGenerator,
    pub(crate) task_hooks: TaskHooks,
    pub(crate) local_tid: Option<ThreadId>,
}
Expand description

Handle to the current thread scheduler

Fields§

§shared: Shared

Scheduler state shared across threads

§driver: Handle

Resource driver handles

§blocking_spawner: Spawner

Blocking pool spawner

§seed_generator: RngSeedGenerator

Current random number generator seed

§task_hooks: TaskHooks

User-supplied hooks to invoke for things

§local_tid: Option<ThreadId>

If this is a LocalRuntime, flags the owning thread ID.

Implementations§

source§

impl Handle

source

pub(crate) fn spawn<F>( me: &Arc<Self>, future: F, id: Id, ) -> JoinHandle<F::Output>
where F: Future + Send + 'static, F::Output: Send + 'static,

Spawns a future onto the CurrentThread scheduler

source

pub(crate) unsafe fn spawn_local<F>( me: &Arc<Self>, future: F, id: Id, ) -> JoinHandle<F::Output>
where F: Future + 'static, F::Output: 'static,

Spawn a task which isn’t safe to send across thread boundaries onto the runtime.

§Safety

This should only be used when this is a LocalRuntime or in another case where the runtime provably cannot be driven from or moved to different threads from the one on which the task is spawned.

source

fn next_remote_task(&self) -> Option<Notified<Arc<Handle>>>

source

fn waker_ref(me: &Arc<Self>) -> WakerRef<'_>

source

pub(crate) fn reset_woken(&self) -> bool

source

pub(crate) fn num_alive_tasks(&self) -> usize

source

pub(crate) fn injection_queue_depth(&self) -> usize

Trait Implementations§

source§

impl Debug for Handle

source§

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

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

impl Wake for Handle

source§

fn wake_by_ref(arc_self: &Arc<Self>)

Wake by reference

source§

fn wake(arc_self: Arc<Self>)

Wake by value.

Auto Trait Implementations§

§

impl !Freeze for Handle

§

impl !RefUnwindSafe for Handle

§

impl Send for Handle

§

impl Sync for Handle

§

impl Unpin for Handle

§

impl !UnwindSafe for Handle

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.