JoinHandle

Struct JoinHandle 

Source
pub struct JoinHandle<T> { /* private fields */ }
Expand description

Handle for awaiting the completion of an asynchronous task

Similar to tokio’s JoinHandle, this allows waiting for a task to complete and retrieving its result. It implements Future so it can be awaited in async contexts.

§Type Parameters

  • T - The output type of the task

§Examples

use luminal::Runtime;

let rt = Runtime::new().unwrap();
let handle = rt.spawn(async { 42 });

// Await the handle
let result = rt.block_on(async {
    handle.await
});
assert_eq!(result, 42);

Trait Implementations§

Source§

impl<T: Send + 'static> Future for JoinHandle<T>

Available on crate feature std only.
Source§

fn poll(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<Self::Output>

Poll method implementation for JoinHandle

This checks if the result is ready by attempting to receive from the channel. If the result is available, it’s returned as Ready. If not, it returns Pending to be polled again later.

§Parameters
  • self - Pinned mutable reference to self
  • _cx - Context for the poll (not used in this implementation)
§Returns

Poll::Ready(T) when the task completes, or Poll::Pending if still running

Source§

type Output = T

The type of value produced on completion.

Auto Trait Implementations§

§

impl<T> Freeze for JoinHandle<T>

§

impl<T> RefUnwindSafe for JoinHandle<T>

§

impl<T> Send for JoinHandle<T>
where T: Send,

§

impl<T> Sync for JoinHandle<T>
where T: Send,

§

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

§

impl<T> UnwindSafe for JoinHandle<T>

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<F> IntoFuture for F
where F: Future,

Source§

type Output = <F as Future>::Output

The output that the future will produce on completion.
Source§

type IntoFuture = F

Which kind of future are we turning this into?
Source§

fn into_future(self) -> <F as IntoFuture>::IntoFuture

Creates a future from a value. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.