pub struct ExecuteMultithreaded<Rest: ComputationController + Send> { /* private fields */ }
Available on crate features
parallel
and unstable-enable
only.Expand description
§Availability
This API is marked as unstable and is only available when the unstable-enable
crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.
Trait Implementations§
Source§impl<Rest: ComputationController + Send> Clone for ExecuteMultithreaded<Rest>
impl<Rest: ComputationController + Send> Clone for ExecuteMultithreaded<Rest>
Source§impl<Rest: ComputationController + Send> ComputationController for ExecuteMultithreaded<Rest>
impl<Rest: ComputationController + Send> ComputationController for ExecuteMultithreaded<Rest>
type Abort = <Rest as ComputationController>::Abort
Source§fn checkpoint(&self, description: Arguments<'_>) -> Result<(), Self::Abort>
fn checkpoint(&self, description: Arguments<'_>) -> Result<(), Self::Abort>
Called by algorithms in (more or less) regular time intervals, can provide
e.g. early aborts or tracking progress.
Source§fn run_computation<F, T>(self, description: Arguments<'_>, computation: F) -> Twhere
F: FnOnce(Self) -> T,
fn run_computation<F, T>(self, description: Arguments<'_>, computation: F) -> Twhere
F: FnOnce(Self) -> T,
Runs the given closure with a clone of this iterator, possibly adding a log
message before and/or after the computation starts/finishes. Read more
Source§fn join<A, B, RA, RB>(self, oper_a: A, oper_b: B) -> (RA, RB)
fn join<A, B, RA, RB>(self, oper_a: A, oper_b: B) -> (RA, RB)
Inspired by Rayon, and behaves the same as
join()
there.
Concretely, this function runs both closures, possibly in parallel, and
returns their results.fn log(&self, _description: Arguments<'_>)
impl<Rest: ComputationController + Send + Copy> Copy for ExecuteMultithreaded<Rest>
impl<Rest: ComputationController + Send> UnstableSealed for ExecuteMultithreaded<Rest>
Auto Trait Implementations§
impl<Rest> Freeze for ExecuteMultithreaded<Rest>where
Rest: Freeze,
impl<Rest> RefUnwindSafe for ExecuteMultithreaded<Rest>where
Rest: RefUnwindSafe,
impl<Rest> Send for ExecuteMultithreaded<Rest>
impl<Rest> Sync for ExecuteMultithreaded<Rest>where
Rest: Sync,
impl<Rest> Unpin for ExecuteMultithreaded<Rest>where
Rest: Unpin,
impl<Rest> UnwindSafe for ExecuteMultithreaded<Rest>where
Rest: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more