Struct timely::synchronization::barrier::Barrier

source ·
pub struct Barrier<A: Allocate> { /* private fields */ }
Expand description

A re-usable barrier synchronization mechanism.

Implementations§

source§

impl<A: Allocate> Barrier<A>

source

pub fn new(worker: &mut Worker<A>) -> Self

Allocates a new barrier.

source

pub fn wait(&mut self)

Blocks until all other workers have reached this barrier.

This method does not block dataflow execution, which continues to execute while we await the arrival of the other workers.

source

pub fn advance(&mut self)

Advances this worker to the next barrier stage.

This change is not communicated until worker.step() is called.

source

pub fn reached(&mut self) -> bool

Indicates that the barrier has been reached by all workers.

This method may not change until worker.step() is called.

Auto Trait Implementations§

§

impl<A> Freeze for Barrier<A>

§

impl<A> !RefUnwindSafe for Barrier<A>

§

impl<A> !Send for Barrier<A>

§

impl<A> !Sync for Barrier<A>

§

impl<A> Unpin for Barrier<A>

§

impl<A> !UnwindSafe for Barrier<A>

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<R, O, T> CopyOnto<ConsecutiveOffsetPairs<R, O>> for T
where R: Region<Index = (usize, usize)>, O: OffsetContainer<usize>, T: CopyOnto<R>,

source§

fn copy_onto( self, target: &mut ConsecutiveOffsetPairs<R, O> ) -> <ConsecutiveOffsetPairs<R, O> as Region>::Index

Copy self into the target container, returning an index that allows to look up the corresponding read item.
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<R, T> PushInto<FlatStack<R>> for T
where R: Region + Clone + 'static, T: CopyOnto<R>,

source§

fn push_into(self, target: &mut FlatStack<R>)

Push self into the target container.
source§

impl<T> PushInto<Vec<T>> for T

source§

fn push_into(self, target: &mut Vec<T>)

Push self into the target container.
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.