Struct TaskFuture

Source
pub struct TaskFuture { /* private fields */ }
Expand description

A future that tracks completion of submitted tasks

TaskFuture provides both blocking and non-blocking ways to wait for task completion, with efficient condition variable notification. Tasks can be checked for completion, waited on indefinitely, or waited on with a timeout.

Implementations§

Source§

impl TaskFuture

Source

pub fn is_complete(&self) -> bool

Check if all tasks are complete without blocking

Returns true if all tasks have finished execution. This is a non-blocking operation using atomic loads.

Source

pub fn wait(self)

Wait for all tasks to complete

This method blocks the current thread until all tasks finish. It uses efficient condition variable notification to minimize CPU usage while waiting.

Source

pub fn wait_timeout(self, timeout: Duration) -> bool

Wait for all tasks to complete with a timeout

Returns true if all tasks completed within the timeout, false if the timeout was reached first.

Source

pub fn remaining_count(&self) -> usize

Get the approximate number of remaining incomplete tasks

This provides a way to monitor progress of task batches. The count is approximate due to relaxed atomic ordering. Not for precise synchronization.

Trait Implementations§

Source§

impl Clone for TaskFuture

Source§

fn clone(&self) -> TaskFuture

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.