Struct fuchsia_async::TaskGroup

source ·
pub struct TaskGroup { /* private fields */ }
Expand description

Allows the user to spawn multiple Tasks and await them as a unit.

Tasks can be added to this group using TaskGroup::add. All pending tasks in the group can be awaited using TaskGroup::join.

Implementations§

source§

impl TaskGroup

source

pub fn new() -> Self

Creates a new TaskGroup.

The TaskGroup can be used to await an arbitrary number of Tasks and may consume an arbitrary amount of memory.

source

pub fn add(&mut self, task: Task<()>)

Adds a Task to this TaskGroup.

source

pub fn spawn(&mut self, future: impl Future<Output = ()> + Send + 'static)

Spawns a new task in this TaskGroup.

To add a future that is not Send to this TaskGroup, use TaskGroup::local.

§Panics

spawn may panic if not called in the context of an executor (e.g. within a call to run or run_singlethreaded).

source

pub fn local(&mut self, future: impl Future<Output = ()> + 'static)

Spawns a new task in this TaskGroup.

§Panics

spawn may panic if not called in the context of a single threaded executor (e.g. within a call to run_singlethreaded).

source

pub async fn join(self)

Waits for all Tasks in this TaskGroup to finish.

Call this only after all Tasks have been added.

Trait Implementations§

source§

impl Default for TaskGroup

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

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>,

§

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>,

§

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.